Swift 객체지향, 함수형, 프로토콜
변수와 상수
데이터 타입 기본
- Character / String / Any, AnyObject / nil
데이터 타입 고급
- String interpolation (문자열 보간)
컬렉션형
- Set (세트)
열거형
연산자
흐름 제어
조건문
- Switch - break
, fallthrough
반복문
- For 루프
- While 루프
함수
옵셔널
구조체와 클래스
- Class / Struct / Enum 간단 비교 | 클래스 구조체 차이
프로퍼티와 메서드
프로퍼티
- Properties #1 - 저장 프로퍼티, 저장 지연 프로퍼티
- Proterties #1-1 - 저장 지연 프로퍼티 - lazy
- Properties #2 - 연산 프로퍼티 - 접근자 getter
, 설정자 setter
- Properties #3 - 프로퍼티 옵저버(감시자) - didSet
, willSet
- Properties #4 - 타입 프로퍼티 (저장 타입 프로퍼티, 연산 타입 프로퍼티) - static
, class
- Properties #4-1 - 연산 타입 프로퍼티 - static
- Properties #5 - 키 경로 (keyPath) - \ .
메서드
- Method #1 - 인스턴스 메서드, self 프로퍼티
인스턴스
- Instance #1 이니셜라이저, 매개변수, 옵셔널 프로퍼티 타입, 상수 프로퍼티 - init()
- Instance #2 기본 이니셜라이저, 멤버와이즈 이니셜라이저 - extension
- Instance #3 초기화 위임, 실패가능한 이니셜라이저 - self.init()
, init?()
- Instance #4 클로저 사용 프로퍼티 기본값, 디이니셜라이저 - 클로저 ()
, deinit
접근제어
- 공개 / 개방 / 내부 / 파일외부비공개 / 비공개 접근수준
↪︎ open
, public
, internal
, fileprivate
, private
클로저
- Closure #3 - Closure syntax (후행 클로저)
- Closure #4 - 후행 클로저에 매개변수 사용
- 클로저 고차함수 - map
, filter
, reduce
모나드 / 서브스크립트
- Monad, 컨텍스트, 함수객체 - flatMap(_:)
, compactMap(_:)
- Subscript(서브스크립트, 타입 서브스크립트) - subscript(_:)
, some[index]
상속
- Inheritance #1 - 클래스 상속(부모, 자식, 기반 클래스)
- Inheritance #2 - 재정의 및 재정의 방지 - override
, super
, final
- Inheritance #3 - 클래스의 이니셜라이저(지정 / 편의 / 요구 이니셜라이저)
↪︎ init
, convenience
, required
타입캐스팅
- Type Casting - is
, .self
, .Type
, .type(of:)
, as
프로토콜
- Protocol #1 - 프로퍼티 요구사항 - protocol
, { get set }
↪︎ func
, static
, mutating
, required
, override
, final
, init?()
- Protocol #3 - 타입으로서의 프로토콜, Delegate
- Protocol #4 - 익스텐션, 컬렉션 타입, 상속
- Protocol #5 - 프로토콜 조합 및 준수, 캐스팅, 옵셔널 프로토콜 요구사항 - @objc
익스텐션 / 제네릭
- Extension - 연산 프로퍼티, 이니셜라이저, 서브스크립트, 중접 타입... - extension
- Generic - <T>
, protocol
, Hashable
, Push
/ Pop
, Stack
고급 문법
- Patterns - 와일드카드, 식별자, 값 바인딩, 튜플, 열거형 케이스, 옵셔널, 타입캐스팅, 표현 패턴
↪︎ _
, let (x, y): (Int, Int)
, case
, if case let value? =
, is
, as
, ~=
- where 절 - 특정 패턴과 결합 - where
- ARC 메모리 관리 1 - 강한 참조 - strong
- ARC 메모리 관리 2 - 강한 참조 - 순환 문제
- ARC 메모리 관리 3 - 약한 참조 - weak
- ARC 메모리 관리 4 - 미소유 참조 - unowned
기타
- DispatchQueue (GCD:Grand Central Dispatch)
- 주요 함수 #1
- 주요 함수 #2
'SWIFT > Grammar' 카테고리의 다른 글
Swift : 고급문법[ARC 메모리 관리4 - 미소유 참조(unowned)] (0) | 2022.02.19 |
---|---|
Swift : 고급문법 [ARC 메모리 관리 3 - 약한참조(weak)] (0) | 2022.02.13 |
Swift : 고급문법 [ARC 메모리 관리 2 - 강한 참조 순환 문제] (0) | 2022.02.12 |
Swift : 고급문법 [ARC 메모리 관리 1 - 강한 참조] (0) | 2022.02.10 |
Swift: 기초문법 [데이터 타입 - Int와 UInt (feat.카멜케이스)] (4) | 2022.02.09 |