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
- protocol
- 개발
- 함수형프로그래밍
- 의도
- 네이밍
- 함수형패러다임
- 객체지향프로그래밍
- interface
- 고차함수
- Solid
- 개발자
- POP
- 협업
- 부스트코스
- iOS프로그래밍
- OOP
- 클린코드
- 디자인패턴
- CleanCode
- Swfit
- 문법
- IOS
- DesignPattern
- 클린소프트웨어
- fp
- SWIFT
- 이름
- 의존성
- 인터페이스
- 아이폰프로그래밍
Archives
- Today
- Total
밤에 쓴 코드
Swift) 옵셔널 - Optional 본문
Optional
변수에 값이 존재하지 않을 수도 있다는 것을 명시한다.
다른 말로 하면 옵셔널이 아닌 변수는 무조건 값을 가져야한다.
값이 꼭 필요한 변수에는 옵셔널이 아닌 타입으로 선언함으로서 , 사전에
nil
이 들어오는 걸 막을 수 있다.또 ,
Optional
로 선언함으로서 ,nil
이 들어올 수 있으니 , 대처가 필요하다는 것을 프로그래머에게 인지 시켜줄 수 도 있다.
Optional 은 제네릭 타입을 지원하는 열거형이다.
enum Optional<T>{
case .some // 값이 존재하는 경우
case .none // nil 인 경우
}
Optional<Int> = Int? // 동일한 표현이다
optional
은.some/.none
두가지경우 중 하나를 를 무조건적으로 가지는 열거형 이다.
Optional 에서 값을 얻어오기
struct Box{
var item
}
var mysteryBox : Box?
Optional Binding : 옵셔널 바인딩
guard let fullBox = mysteryBox as? Box else { return // 값의 부재 nil } fullBox.item // 값이 존재하는 지 확인후 Unwrapping
Optional Chaining : 옵셔널 체이닝
mysteryBox?.item // mysteryBox 유효하면 item에 접근한다.
Unconditional Unwrapping: 강제추출
mysteryBox!.item // 값의 유무를 확인하지 않고 강제적으로 Unwrapping한다
'Swift' 카테고리의 다른 글
Swift) POP - Protocol Oriented Programming (1) | 2019.04.25 |
---|---|
Swift) Extension - 익스텐션 (0) | 2019.04.25 |
Swift) 프로토콜 - Protocol (0) | 2019.04.11 |
Swift) 구조체/변수/상수 (0) | 2019.04.08 |
Swift) 열거형 - Enumeration (0) | 2019.04.05 |
Comments