티스토리 뷰

나름 프로그래밍?/Swift

optional

-Dong- 2015. 5. 11. 23:14

  Swift 에서는 nil은 '값이 없다'라는 의미로 사용한다고 한다(?)

  예전처럼

  var integerValue : Int

  라는 값이 있다고 하면

  if integerValue {

    ...

  }

  이런식으로 (int 가지고 이러진 않았지만) 값이 있나 검사했다면 이제는 Int 라고 선언된 변수에는 nil 이 들어갈 수 없기에 에러를 띄운다

  nil을 위해서는 optional 로 선언되어야 하고 

  var integerValue : Int?

  처럼 마지막에 ? 를 붙이면 된다.

  

  그렇다면 optional 은 nil 이 될 수 있다고  했으니 값을 가져와 사용할때는 nil 인지 여부를 체크해야 된다


  var integerValue : Int?

  var integerValue2 : Int

  

  이렇게 있다고 한다면 

  integerValue2 = integerValue1

  과 같이 optional이 optional로 선언되지 않은 변수에 바로 들어가지 못한다 이럴땐

  integerValue2 = integerValue1!

  처럼 !(forced unwrapping operator란다..)를 붙여주면서 여기엔 값이 명확히 있다! 라고 알려주면 된다 말마따나 이전 버젼에서 nil 때문에 뻑하면 튕기던 문제를 잡는다는 것 같다... 말마따나 변수를 만들때마다 optional 로 줄지를 결정해주는 과정이 필요할듯

  그리고 optional 일때 체크를 매번 해서 가져오는 번거로움을 조금이라도 피하라는 장치는 있다


  var integerValue1 : Int? = 33

  if let integerValue2 = integerValue1

  {

    println("integer \(integerValue2)");

  }

  이와 같이 if let으로 optional 값을 체크해서 변수로 담아올 수 있다 그리고 Optional Chaining 이라는 것도 두어 여러차례 검사해서 집어넣는 것도 약간 간소화를 시켜 놓았는데

  사실 지금 단계에선 봐도 이해가 잘 안되서

  https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html

  링크로...........

  

'나름 프로그래밍? > Swift' 카테고리의 다른 글

Dictionary  (0) 2015.05.19
Array  (0) 2015.05.19
Range Operator  (0) 2015.05.07
Switch Case 문  (0) 2015.05.06
For 문  (0) 2015.05.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함