일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 두근두근 자료구조
- level13
- System
- 자료구조
- pwnable.kr
- 암호수학
- War Game
- C
- 정렬 알고리즘
- Java
- ftz level13
- PHP
- 큐
- Stack
- ftz
- 미로 탐색 알고리즘
- 백준
- OSI
- SWiFT
- web
- LoB
- c언어
- 스택
- windosw 문자열
- 시간복잡도
- 재귀
- 파이썬
- windosws wbcs
- 파일 시스템
- HTML
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 8.1 옵셔널 본문
반응형
스위프트 프로그래밍 3판 - 야곰 지음
스위프트의 특징 중 하나인 안정성을 문법으로 담보하는 기능이다. 다른 언어에서는 찾아볼 수 없는 개념이기도 하다.
옵셔널은 선택적으로 값을 가질 수 있다. 즉, 값이 "있을 수도, 없을 수도" 있다. 안철수 같은 개념.
옵셔널의 개념은 함수형 프로그래밍 패러다임에서 자두 등장하는 모나드 개념과 나란히 할 수 있다. 모나드는 추후에 포스팅할 것이다.
옵셔널 변수 또는 상수 등은 데이터 타입 뒤에 ?를 붙여 표현할 수 있다.
var myName: String = "hyunjin"
myName = nil // error
옵셔널로 선언되지 않은 변수에 nil을 할당할 수 없다.
var myName: String? = "hyunjin"
print(myName)
myName = nil
print(myName)
옵셔널 데이터 타입을 출력하면 Optional()로 표현되는 것이 정상이다.
그 다음 nil이 출력되지만 컴파일러 경고가 발생할 수 있다 이 또한 정상이다.
옵셔널은 어떠한 상황에 사용할까?
우리가 만든 함수에 전달되는 전달인자 값이 잘못된 값일 경우 제대로 처리하지 못했음을 nil을 반환하여 표현하는 것을 들 수 있다. 또는 매개변수를 굳이 넘기지 않아도 된다는 뜻으로 매개변수의 타입을 옵셔널로 정의할 수 있다.
반응형
'Programming > Swift' 카테고리의 다른 글
[Swift] 구조체와 클래스 (0) | 2021.07.15 |
---|---|
[Swift] 8.2.2 옵셔널 바인딩 (0) | 2021.07.14 |
[Swift] 7.3 중첩함수 7.4 종료되지 않은 함수 7.5 반환을 무시하는 함수 (0) | 2021.07.13 |
[Swift] 7 함수 / 함수 정의와 호출 / 매개변수 (0) | 2021.07.12 |
[Swift] 6.1.2 switch 구문 (0) | 2021.07.05 |