본문 바로가기

책 정리/Swift 프로그래밍8

Chap 16~17. 모나드, 서브스크립트 모나드의 조건타입을 인자로 받는 타입(특정 타입의 값을 포장)특정 타입의 값을 포장한 것을 반환하는 함수(메서드) 존재포장된 값을 변환하여 같은 형태로 포장하는 함수(메서드) 존재함수객체함수객체: map을 적용할 수 있는 컨테이너 타입함수객체 예: Array, Dictionary, Set 서브스크립트get, set 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있다.자신이 가지는 시퀀스나 컬렉션, 리스트 등의 요소를 반환하고 설정할 때 주로 사용 2024. 6. 5.
Chap 14~15. 옵셔널 체이닝과 빠른 종료, 15(맵, 필터, 리듀스) 빠른 종료예외사항만 처리하고 싶다면 if보다 guard문을 사용하는 것이 더 간편// if문 사용for i in 0...3 { if i == 2 { print(i) } else { continue }}// guard문 사용for i in 0...3 { guard i == 2 else { continue } print(i)} guard문의 한계return, break, continue, throw 등의 제어문 전환 명령어를 쓸 수 없는 상황이라면 사용이 불가능15. 맵, 필터, 리듀스1. 맵맵은 기존 데이터를 변형하는데 사용container.map(f(x)) -> return f(container의 각 요소)다중 스레드 환경 시 동시에 값이 변경되는 것을 방지 할 수 있다.2. 필터컨.. 2024. 5. 22.
Chap 13. 클로저 Part 3.함수형 프로그래밍과 스위프트클로저의 3가지 형태이름이 있으면서 어떤 값도 획득하지 않는 전역함수의 형태이름이 있으면서 다른 함수 내부의 값을 획득할 수 있는 중첩된 함수의 형태이름이 없고 주변 문맥에 따라 값을 획득할 수 있는 축약 문법으로 작성한 형태클로저의 다양한 표현클로저는 매개변수와 반환 값의 타입을 문맥을 통해 유추할 수 있기 때문에 매개변수와 반환 값의 타입을 생략 가능클로저에 단 한 줄의 표현만 들어있다면 암시적으로 이를 반환값으로 취급축약된 전달인자 이름을 사용할 수 있다.후행 클로저 문법을 사용할 수 있다.후행 클로저:클로저가 조금 길어지거나 가독성이 떨어질 때 사용클로저는 참조 타입let incremetnByTwo: (() -> Int) = makeIncrementer(fo.. 2024. 5. 20.
Chap 11~12. 인스턴스 생성 및 소멸, 접근 제어 인스턴스 생성:해당 타입의 새로운 인스턴스를 생성하기 위해 호출인스턴스의 첫 사용을 위한 초기화 상수 프로퍼티인스턴스를 초기화하흔 과정에서만 값을 할당할 수 있음처음 할당된 이후 값 변경이 불가접근제어: 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능 Open: 개방 접근수준클래스와 클래스의 멤버에서만 사용 가능개방 접근수준:  그 클래스를 다른 모듈에서도 부모클래스로 사용하겠다는 목적으로 클래스를 성계하고 코드를 작성했음을 의미internal: 내부 접근수준기본적으로 모든 요소에 암묵적으로 기정하는 기본 접근 수준외부 모듈에서는 접근 불가외부에서 사용할 클래스가 구조체가 아니며, 모듈 내부에서 광역적으로 사용할때 사용fileprivate: 파일외부비공개 접근수준구현된 소스파일 내부에서만 사용해당 .. 2024. 5. 20.