본문

160811(목) - Swift

Swift - 02 Xcode & 기본문법


C기반의 컴파일러 GCC ▶ Apple 컴파일러 LLVM


ARC기능

객체의 참조 카운팅을 컴파일러에서 스스로 처리


스토리보드 형식

화면 인터페이스를 설계할 때 여러개의 화면을 한 파일에서 통합으로 다룸으로서 서로간의 연결 관계나 흐름을 쉽게 파악할 수 있도록 지원


플레이 그라운드

- 실시간으로 코딩하고 결과를 볼 수 있도록 해줌

- 클래스나 구조체 등 캡슐화 객체를 코딩해야 할 필요가 있을 때, 먼저 코딩해보면 개발 생산성에 도움






스위프트의 문법적 특성

1. 헤더파일 X

클래스나 구조체를 선언할 때 Interface와 Implementation이 분리되지 않고 통합되는 특성이 있다.


2. 대소문자 구분

- 함수와 메소드, 인스턴스명의 첫 글자는 소문자

- 클래스와 구조체, 프로토콜, 확장체 등 객체의 첫 글자는 대문자


3. 구문끝의 세미콜론(;)은 옵션

대신 for문 등 한 줄에 두 개 이상의 구문을 작성시에는 끝을 명시해주어야 함


4. main() 함수가 없다.

- 엔트리 포인트 함수가 필요 없음

- 맨위의 구문부터 순서대로 해석

- @UIApplicationMain Annotation을 사용하여 앱의 시작 객체를 지정


5. 문자열뿐만 아니라 문자도 큰따옴표 사용


6. import는 라이브러리와 프레임워크 참조 용도


7. Java처럼 한 줄, 여러 줄 주석처리 가능, 주석 내부에 또다른 주석 가능


8. try ~ catch 지원

Optional의 한계 극복 가능



변수와 상수

변수

var year = 2015


var year : Int

year = 2015


상수

let birthYear = 1980


※ 변수, 상수명으로 한자나 이미지용 바이너리 코드까지 지원


숫자 + 문자 -> 오류로 판단



Type annotation

변수나 상수를 선언할 때 그 타입을 명시적으로 선언해주어, 여기에 어떤 타입의 값이 저장될 것인지를 컴파일러에 명확하게 알려주는 문법


타입 추론

직접 타입을 지정해 주지 않아도 초기화 될 때 입력되는 값을 분석하여 컴파일러가 스스로 적합한 타입을 추론하여 적용하는 기능


명시적인 타입 선언이 필요한 경우

1. 변수나 상수의 선언과 초기화를 분리할 경우

2. 다른 타입을 직접 지정할 필요가 있을 때

var temper1 = 3

var temper2 : Float = 3



타입 변환

String(숫자변수)

Int(문자변수)


문자열 템플릿

let name = "마스터"

let birthY = 80


let profile  = "\(name)님은 \(birthY)년 살꺼야!

print(profile)



let apple = 3

let banana = 2


let desc = "과일은 총 \(apple+banana)개 입니다.



범위 연산자(range operator)

닫힌 범위 연산자(closed range operator)

- [1 ~ 5] 를 뜻한다.

1...5


반 닫힌 범위 연산자(half-closed range operator)

- [1 ~ 5) 를 뜻한다.

1..<5


- 왼쪽은 없음



공유

댓글