분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
실제 코드를 복사해 봤습니다.
func findIndexOfString (string: String, array: String[]) -> Int? { // 1. ?
...
}
var neighbors = ["Alex", "Anna", "Madison", "Dave"]
let index = findIndexOfString("Anna", neighbors)
if let indexValue = index { // 2. optional binding
println("Hello, \(neighbors[indexValue])")
} else {
println("Must've moved away")
}
실제 코드를 복사해 오니 보기 참 좋네요. 근데, 콩트는 더 이상 생각이 안 납니다. 점 점 복잡해져서.ㅠ.ㅠ
1. Int를 보면 ?가 붙어 있습니다. 이거 뭐지?? 이걸 optional 이라고 합니다. 간단히 말하면 옵션.. 흠... 옵션이죠.
그러니까 있을수도 있고 없을 수도 있다. 뭐 이런 겁니다.값이 있을수도 있고 없을 수도 있고.. 그래서 초기값은 nil
2. 이걸 어떻게 사용하냐면, 있으면 if문 실행하는 거고 없으면 else문으로 갑니다. 그러니까, nil 인지 확인할 필요가 없습니다.
오.. 좋다. nil, -1, null 등등 짜증 났었는데, 어떤 type도 ?이 가능하니 optional binding 쓰면 간단하게 코드 짤 수 있겠네. 편하네..
이 보다 더 읽기 쉽고, 짜기 편한 게 있겠어!!! ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
있습니다.
addressNumber = paul.residence?.address?.buildingNumber?.toInt()
헐.. 이건 또 뭐냐?
optional chaining이라는 건데, 클래스나 구조 멤버가 optional 일 경우 ?.을 이용해서 없을 경우 nil을 리턴해 줍니다.
옛날 같았으면, if 에 if 에 if 를 거치면서 쭉 들어가서 값 넘겨받아야 되는데, ? 이거 하나 붙여주면 됩니다. 오... 아무튼 신세계.
WWDC 비디오 시청 중인데 신기한 게 많네요. pattern은 이해가 좀 안 됩니다. ... 머리가 굳었어. ㅠ.ㅠ
함 봐 보시길.
func stateFromPlist(list: Dictionary<String, AnyObject>) -> State? {
switch(list["name"], list["population"], list["abbr"]) {
case (.Some(let listName as NSString),
.Some(let pop as NSNumber),
.Some(let abbr as NSString))
where abbr.length ==2:
return State(name: listName, population: pop, abbr: abbr)
default:
return nil
}
}
죄송합니다. 댓글 작성은 회원만 가능합니다.