Bucket Place/IOS Swift

[Swift] Basic

Cloud Travel 2015. 4. 28. 14:26



스위프트 넌 누구냐? 기본적인 것부터 하나하나 차근차근 나아가보자.



 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