본문 바로가기

optional

(4)
Swift의 assert와 guard 애플리케이션이 동작 도중에 생성하는 다양한 연산 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리할 수 있음 1. Assertion •assert(_:_:file:line:) 함수를 사용 •assert함수는 디버깅 모드에서만 동작 •배포하는 애플리케이션에서는 제외됨 •예상했던 조건의 검증을 위하여 사용 1234567891011121314151617181920212223var someInt: Int = 0 // 검증 조건과 실패시 나타날 문구를 작성// 검증 조건에 부합하므로 지나감assert(someInt == 0, "someInt !=0") someInt = 1//assert(someInt == 0) // 동작 중지, 검증 실패//assert(someInt == 0, "some..
Swift의 옵셔널 체이닝과 nil 병합 연산자 1. 옵셔널 체이닝 •옵셔널 체이닝은 옵셔널의 내부의 내부의 내부로 옵셔널이 연결되어 있을 때 유용하게 활용할 수 있음 •매번 nil 확인을 하지 않고 최종적으로 원하는 값이 있는지 없는지 확인할 수 있음 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778// 예제 클래스// 사람 클래스class Person { var name: String var job: String? var home: Apartment? init(name: String) { self.name = name }}// 사람이 사..
Swift의 옵셔널 추출 1. 옵셔널 추출 •옵셔널에 들어있는 값을 사용하기 위해 꺼내오는 것 2. 옵셔널 방식 •옵셔널 바인딩 1. nil 체크 + 안전한 추출2. 옵셔널 안에 값이 들어있는지 확인하고 값이 있으면 값을 꺼내옵니다3. if-let 방식 사용 123456789101112131415161718192021222324252627282930313233343536373839404142434445func printName(_ name: String) { print(name)} var myName: String? = nil // printName(myName)// 전달되는 값의 타입이 다르기 때문에 컴파일 오류발생 if let name: String = myName { printName(name)} else { print("..
Swift의 옵셔널 1. 옵셔널의 뜻 •값이 있을 수도, 없을 수도 있음을 표현 •nil이 할당될 수 있는지 없는지 표현 1234567891011// optionalParam에 nil이 할당될 수 있음func funciton(optionalParam:Int?) { // ....} // optionalParam에 nil이 할당될 수 없음func function(optianlParam:Int) { // ....} function(optionalParam: nil)cs 2. 옵셔널을 쓰는 이유 •명시적 표현1. nil의 가능성을 코드만으로 표현가능2. 문서/주석 작성 시간 절약 •안전한 사용1. 전달받은 값이 옵셔널이 아니라면 nil 체크를 하지 않고 사용가능2. 예외 상황을 최소화 하는 안전한 코딩3. 효율적 코딩 3. 옵셔널..