Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ios
- switch
- 문자열 보간법
- 패스트캠퍼스후기
- Background
- enum
- RawValue
- Threading
- TableView
- SeSAC
- 패스트캠퍼스
- swift
- 함수
- xcode
- Realm
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- 기본문법
- Optional Chaining
- userDefaults
- 옵셔널 체이닝
- 프로퍼티 관찰자
- 직장인자기계발
- 패캠챌린지
- 직장인인강
- cancelAsyncWrite
- 독학
- 인스펙터
- 열거형
- beginAsyncWrite
- Git
Archives
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 15일차_옵셔널 본문
■ 옵셔널
- 값이 있을 수도 있고 없을 수도 있음을 의미
- ? 혹은 !를 데이터 타입 뒤에 붙여서 사용
- 아래 두 경우 모두 변수 someValue는 옵셔널 정수의 타입을 갖도록 선언됨
var someValue: Optional<Int>
var someValue: Int?
■ 옵셔널의 특징
- nil의 가능성을 문서화 하지 않고도 코드만을 이용해 표현 가능
→ 문서나 주석을 작성하는 시간 절약 가능 - 전달받은 값이 옵셔널이 아닐 경우, nil 체크를 안했어도 안심하고 사용 가능
→ 예외적인 상황을 최소화할 수 있음 - 기본적으로 옵셔널 변수 또는 프로퍼티를 선언할 때, 초기값을 지정하지 않으면 기본값은 nil로 자동 설정함
→ 옵셔널 타입으로 변수나 상수를 생성하면, 초기값은 nil) - 옵셔널 표현식은 조건부 수행을 위해 옵셔널 체이닝과 옵셔널 바인딩을 사용할 수도 있음
- 옵셔널 타입으로 암시적으로 변환되거나 명시적으로 선언될 수 있음
1) ‘!’ 를 사용한 옵셔널 (암시적 추출 옵셔널)
- 일반적인 변수처럼 사용 가능
- nil값을 할당할 수 있음
- nil의 값을 갖는 옵셔널을 언래핑 하기위해 ‘!’연산자를 사용하면 런타임 오류가 발생할 수 있음
var someValue: Int! = 5
2) ‘?’ 를 사용한 옵셔널
- nil값을 할당할 수 있음
- 포장되어 있는 옵셔널 변수는 일반 타입 변수와 결합, 연산 등이 불가능
(단, 옵셔널 바인딩을 이용할 경우 가능)
- 옵셔널 타입에도 일반값을 넣을 수 있음
- 안정성이 장점인 swift의 경우, 값이 없을 수도 있는 변수에 optional을 사용한다면 값이 없는 변수에 접근을 해도 프로그램이 종료되지 않음
(반면 일반적인 프로그래밍 언어에서는 값이 null변수에 접근하면 런타임 에러가 발생해 프로그램이 자동으로 종료됨)
var optoinalName: String? = “Apple”
※ nil
- 값이 없음을 의미하는 값
- 다른 언어에서는 null이라고 표현하기도 함
- 모든 변수에 nil을 넣을 수 있는 것은 아님
(단, 데이터 타입 뒤에 ‘?’를 추가하면 가능)
var name: String? = nil
var number: Int? = nil
본 게시물은 개인 공부 기록용이므로 내용에 오류가 있을 수 있습니다.
■ fast campus강의 외 참조자료
[1] https://blog.yagom.net/550/
[2] https://bbiguduk.gitbook.io/swift/language-reference/types#optional-type
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 17일차_구조체 (0) | 2022.02.09 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 16일차_옵셔널 추출 (0) | 2022.02.08 |
[Swift 독학] 패스트캠퍼스 챌린지 14일차_반복문 (0) | 2022.02.06 |
[Swift 독학] 패스트캠퍼스 챌린지 13일차_조건문 (0) | 2022.02.05 |
[Swift 독학] 패스트캠퍼스 챌린지 12일차_함수(Functions)는 일급객체 (0) | 2022.02.04 |