스위프트 넌 누구냐? 기본적인 것부터 하나하나 차근차근 나아가보자.
Data type |
1. Simple value
- 데이터를 담을 수 있는 그릇으로 크게 상수와 변수로 존재한다.
1) 상수
- 한번 지정되면 변하지 않은 값
- 선언법
~ let [NAME] = [VALUE]
ex) let nickname = "CloudTravel"
2) 변수
- Swift는 동적언어의 특성을 갖고 있다. ( like) javascript, ruby ) 동적언어는 일반적으로 Type을 지정하지 않아도 된다.
- 하지만, Swift는 안정성을 추구하기 위해서 사용자에게 Type을 지정할 수 있게 만들어 두었다.
- 선언법
~ 기본 : var [NAME] = [VALUE]
ex) var birthDay = "2003-01-01"
~ Typ 지정 : var [NAME] :[TYPE] = [VALUE]
ex) var age :Int = 20
※ 형변환(Casting)
- 명시적 변환기법을 사용한다.
- 선언법
~ [TYPE]([VALUE])
ex) age = Int(27.3) // result age = 27
2. String
- 기존의 다른 언어들과 비슷하다.
- 특이점) 루비처럼 문자열 중간에 변수를 바로 참조할 수 있다. 참조법은 \([NAME])으로 변수를 호출한다.
ex)
var nickname :String = "CloudTravel"
println("My name is \(nickname).") // result : My name is CloudTravel
3. Array
- 기존의 언어들과 같다.
- 특이점) Data type은 정하지 않으며, 다양한 형식의 값들이 하나의 배열에 올 수 있다.
ex)
var array = [0, "abc", Double(2.5)]
array[2] // 2.5
4. Dictionary
- Hash와 같은 역할을 하는 데이터유형이다.
- Dictionary는 nil값이 올 수 있다. 즉, Dictionary의 return값은 Optional 값이다.
ex)
var dic = [ "A": 1, "B": 2, "C": 3]
dic["B"] // 2
Nil |
- Swift의 nil은 Empty, 빈 상태를 의미한다. ( like) ruby )
- nil에 접근하거나, 변수에 nil값이 들어가면 error가 발생한다. 하지만 Swift에서는 변수에 nil값이 들어갈 수 있도록 하였다.
- Optional
~ 변수에 nil값이 들어 수 있게 하여 더 유연하게 변수를 사용할 수 있게 된다.
~ 선언법
> var [NAME]: [TYPE]?
ex) var age :Int?
- Optional 값이 아닌 변수는 변수 선언과 동시에 반드시 초기화를 하는 것을 권장한다.
- Optional 값은 사용하기 전에 nil값인지 확인을 해야한다.
- 객체(클래스) 타입에 대한 optional check는 나중에 다루도록 하겠다.
제어문 |
1. 반복문
- for, for-in, while, do-while을 제공한다.
2. 조건문
- [if, else if, else], switch 문을 제공한다.
- switch문은 C와 같이 String 값까지 사용이 가능하다.
함수 |
1. 선언
func [NAME] ( [ [PARAMETER_N]: [TYPE_N] ] ) -> [RETURN TYPE] {
return ...; // return type이 void라면 생략이 가능하다. (void일 경우에는 명시하지 않아도 된다.)
}
ex)
func sum ( a :Int, b :Int ) -> Int {
return a + b;
}
2. 특이점
- 여러개의 반환 값을 갖을 수 있다. 이를 하나의 데이터 셋으로 묶어 Tuple이라고 한다.
ex)
func plusMinusCalc(a :Int, b: Int) -> (plus :Int, minus :Int) {
return ( (a+b), (a-b) );
}
var result = plusMinusCalc(3,4)
result.plus // 7
result.minus // -1