일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프래그먼트
- Self
- concurrency
- weak
- View
- 알고리즘
- 자바
- 리스트뷰
- 차이
- 프로그래머스
- 안드로이드
- observable
- ios
- 풀이
- noncopyable
- 해시
- 프로퍼티
- RxSwift
- 구조체
- 스위프트
- 연산자
- 옵셔널
- 클로저
- Subject
- 백준
- 생명주기
- rx
- 이스케이핑
- Swift
- async
- Today
- Total
목록옵셔널 (4)
study record

클로저란? 어떤 기능을 하는 코드를 하나의 블럭으로 모아놓은 것이다. 함수도 클로저의 한 형태이다. 클로저의 큰 특징은 클로저가 선언된 위치에서 어떤 상태를 캡쳐하고 참조를 얻을 수 있다는 것이다. 탈출 클로저 Escaping Closure 탈출 클로저란 @escaping 가 붙은 클로저로 함수가 반환된 후 밖에서 실행시키는 클로저이다. 이를 활용하여 기존에 있던 함수 범위 내부의 자원들을 활용해서 비동기적 작업을 할 수 있다. 함수의 매개변수로 클로저를 전달하고, 전달받은 클로저를 실행하여 함수를 탈출한다. Swift에서는 함수의 파라미터로 전달된 클로저는 기본적으로 "함수 내부 스코프 안에서만" 사용이 가능하다. 기본 클로저는 함수 내부를 탈출할 수 없다는 의미에서 "탈출 불가"속성을 가지고 있다. ..
프로그래밍에서 모나드가 갖춰야 하는 조건 타입을 인자로 받는 타입(특정 타입의 값을 포장) 특정 타입의 값을 포장한 것을 반환하는 함수가 존재 포장된 값을 변환하여 같은 형태로 포장하는 함수가 존재 모나드를 이해하는 출발점은 값을 어딘가에 포장하는 개념을 이해한 것에서 출발한다. 스위프트에서 모나드를 사용한 예 중에 하나가 바로 옵셔널이다. 옵셔널은 값이 있을지 없을지 모르는 상태를 포장하는 것이다. 함수객체와 모나드는 특정 기능이 아닌 디자인 패턴 혹은 자료구조라고 할 수 있다. 컨텍스트 이번 파트에서 컨텍스트는 '콘텐츠를 담은 그 무엇인가'를 뜻한다. 물컵에 물이 담겨있으면 물은 콘텐츠고 물컵은 컨텍스트라고 볼 수 있다. 옵셔널은 열거형으로 구현되어 있어서 열거형 case의 연관값을 통해 인스턴스 안..
옵셔널 체이닝 옵셔널 체이닝은 옵셔널에 속해있는 nil일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정이다. 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기 때문에 옵셔널 체이닝이라고 부른다. 중첩된 옵셔널 중 하나라도 값이 존재하지 않는다면 결과적으로 nil을 반환한다. 옵셔널 체이닝은 프로퍼티나 메서드, 서브스크립트를 호출하고 싶은 옵셔널 변수나 상수 뒤에 물음표를 붙여 표현한다. 옵셔널이 nil이 아니라면 정상적으로 호출될 것이고, nil이라면 nil을 반환할 것이다. let yagom: Person = Person(name: "yagom") if let roomNumber: Int = yagom.address?.b..
옵셔널은 단어 뜻 그대로 값이 있을 수도, 없을 수도 있음을 나타내는 표현이다. 옵셔널을 읽을 때, 해당 변수 또는 상수에는 값이 없을 수도 있다. 즉, 변수 또는 상수가 nil일 수 있으니 사용에 주의하라는 뜻으로 받아들일 수 있다. 옵셔널 사용 옵셔널 변수 또는 상수가 아니면 nil을 할당할 수 없다. 옵셔널 변수 또는 상수는 데이터타입 뒤에 물음표(?)를 붙여 표현한다. 옵셔널을 사용하는 상황 오류 발생시 간단히 nil을 반환해서 오류가 있음을 알릴 수 있다. 매개변수를 굳이 넘기지 않아도 된다는 뜻으로 매개변수 타입을 옵셔널로 정의할 수 있다. 옵셔널은 열거형으로 구현되어 있다. 옵셔널 추출 옵셔널의 값을 옵셔널이 아닌 값으로 추출한다. 옵셔널 강제 추출 가장 간단하지만 가장 위험한 방법이다. 런..