목차


Chapter 24. 타입 중첩


스위프트에는 타입 내부에 타입을 정의하고 구현할 수 있다. 이처럼 타입 내부에 새로운 타입을 선언해준 것을 중첩 타입이라고 한다.

중첩 데이터 타입

클래스 내부에 새 클래스, 클래스 내부에 새 구조체, 구조체 내부에 새 열거형 등의 타입을 중첩해서 타입 내부에 새 타입을 정의할 수 있다. 이름은 같더라도 타입 마다 역할을 다르게 부여할 때 쓰기도 한다.

class Person {
		enum Job {
				case jobless, programmer, student
		}
		var job: Job = .jobless
}

class Student: Person {
		enum School {
				case elementary, middle, high
		}
		
		var school: School
		
		init(school: School) {
				self.school = school
				super.init()
				self.job = .student
		}
}

let personJob: Person.Job = .jobless
let studentJob: Student.Job = .student

let student: Student = Student(school: .middle)

Chapter 25. 패턴


패턴은 ‘단독 또는 복합 값의 구조를 나타내는 것’이고, 패턴 매칭은 ‘코드에서 어떤 패턴의 형태를 찾아내는 행위’라고 할 수 있다. 대부분의 패턴은 switch, if, guard, for 등의 키워드와 아주 친하며 두 개 이상의 키워드가 합을 이뤄 동작한다.

스위프트의 패턴은 크게 두 종류로 나뉜다.

와일드카드 패턴