The Basics 하위 항목들은 아래와 같이 구성됩니다.
신경써서 보셔야 할 부분은 12번째 항목인 Optional과 Optional Binding부분입니다. 아래의 항목들은 해당 토픽에서 자세하게 설명할 예정이고 아래에서 몇가지만 알아볼 예정입니다.
- Constants and Variables
- Comments
- Semicolons
- Integers
- Floating-Point Numbers
- Type Safaety and Type Inference
- Numeric Literals
- Numeric Type Conversion
- Type Alises
- Booleans
- Tuples
- Optionals
- Optional Binding
자 그럼 하위토픽에서 자세하게 설명될 부분들의 전체적인 내용을 가볍게 훑어 보도록 하겠습니다.
Swift(스위프트는)는 C나 Objective-C와 많은 부분 유사하며, iOS, OS X, watchOS 앱개발을 위한 언어입니다.
기본타입과과 컬렉션 타입을 제공합니다.
기본타입
C나 Objective-C에 상응하는 기본타입들을 가지고있고, 전부 structure(구조체)형태 입니다.
스위프트의 구조체는 속성뿐만 아니라, 메소드도 가질 수 있습니다. 또한 구조체 생성시 인스턴스를 생성한다는 말을
사용하게 됩니다. 클래스에서 사용되는 인스턴스 생성이라는 개념을 구조체에도 적용시켰습니다.
- Int
- Double
- Float
- Bool
- String
컬렉션타입(Collection Types)
- Array - 순서가 존재하고 동일한 타입의 값을 저장할 때 사용
- Set - 순서가 없음, 배열대신 사용가능
- Dictionary - 순서가 없음, 키와 값으로 이루어진 데이터를 저장할 때 사용
상수(Constants)
let x : Int = 3 //상수선언시 let사용하고, 뒤에는 : 을 사용하여 타입을 선언
변수(Variables)
var x : Int = 3 //변수선언시 let사용하고, 뒤에는 : 을 사용하여 타입을 선언
튜플(Tuples)
var (x,y) = (1,3) //두개의 값을 괄호로 묶어서 저장할 수있습니다.
옵셔널(Optionals)
var num : Int?
//타입뒤에 ? 선언한 것이 옵셔널입니다. ?를 선언하게되면 부를 때는 옵셔널 Int타입이라고 부릅니다. 옵셔널을 선언함으로써 num이라는 변수에 값의 부재를 나타내는 nil이 할당될 수도 있고, Int값이 할당될 수 도 있습니다.
num = 3을 할당했다고 해봅시다. num에 내부에는 Optional(3)의 형태로 값이 저장되어 있습니다. 3이란 값이 옵셔널로 래핑이 됩니다. nil이 들어가게 되면 Optional(nil)과 같은 형태로 됩니다. num에는 3이 들어있지만 옵셔널로 둘러쌓여 있기(wrapping) 때문에 연산이 불가능합니다. 연산을 하기 위해서 num에 있는 값을 꺼내서 사용해야 하는데, 래핑된 옵셔널을 언래핑(unwrapping)하는 과정이 필요합니다. 다음과 같은 방법으로 언래핑을 시도합니다.
var unwrappedValue = num! //옵셔널이 벗겨지고, unwrappedValue에는 3이란 값이 할당이 됩니다.
자세한 내용은 옵셔널 토픽에서 다루도록 하겠습니다.
Type-Safe language
스위프트는 타입 세이프한 랭귀지입니다. 간단하게 말하면 Float타입에 Int타입 값이 들어갈 수 없습니다. 동일한 타입만으로 초기화 가능합니다. 값의 잘림으로 인한, 잘못된 값이 들어가는 것을 애초에 하지 못하도록 설정되어 있습니다.
간단하게 몇가지에 대해서 알아보았습니다. 생소한 개념은 옵셔널일 것입니다. 간단하게 원리만 이해하면 상당히 쉬운개념인데, 실습을 자주해보시길 권장합니다.
자세한 내용은 하위 토픽에서 알아보도록 하겠습니다.