728x90
순서
옵셔널 체이닝의 목적
옵셔널 체이닝
옵셔널체이닝의 목적
옵셔널체이닝의 목적은 코드의 간결함을 위해서 입니다
옵서널타입의 값이 프로퍼티 혹은 메서드를 가질 때 연속적으로 붙여 쓸 수 있습니다
if let a = bb.abc{
if let x = a.xxx{
print("\(x.yy)")
}
}
//동일
print("\(bb.abc?.xxx?.yy)")
|
cs |
!을 쓰지 않는 이유는 nil값을 언래핑하는 충돌 가능성이 있기 때문입니다
nil값을 언래핑할 수 없으니 안전한 ?을 사용합니다
옵셔널체이닝 중간에 리턴값으로 nil이 나와도 오류를 발생시키지 않습니다
또한 마지막에 얻는 값이 일반자료형리턴으로 정의되어 있어도 옵셔널타입으로 반환됩니다
옵셔널 체이닝
class Man{
var name: String?
var weight : Double?
var nation:nation()
}
class nation {
var korea = korea()
var usa : usa?
}
class korea{
var continent = "asia"
var lang = "korean"
}
class usa{
var continent = "america"
var lang = "english"
}
|
cs |
옵셔널체이닝을 사용하면 더욱 간결한 코드를 작성할 수 있습니다
또한 리턴되는 값은 옵셔널타입인것을 확인할 수 있었습니다
let Kim=Man()
if let a = Kim.nation{
if let b = a.korea{
print("\(b.lang)") //korea
}
}
print("\(Kim.nation?.korea?.lang)")//optional("korean")
|
cs |
참고자료
한성현 교수님의 유튜브 강의
https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
728x90
'🍎iOS프로그래밍 > 겨울방학 특강' 카테고리의 다른 글
Swift문법 - Generic (0) | 2022.01.08 |
---|---|
Swift문법 - error handling (0) | 2022.01.08 |
Swift문법 - 열거형,구조체 (0) | 2022.01.06 |
[복습] Swift문법 간단 정리-2 (0) | 2022.01.05 |
[복습] Swift문법 간단 정리-1 (0) | 2022.01.04 |
댓글