타입 중첩

박형석·2021년 12월 13일
0

Swift

목록 보기
14/20
post-thumbnail

중첩 타입(Nested Type)이란?

스위프트에는 타입 내부에 타입을 정의하고 구현할 수 있다. 이것을 중첩 타입(Nested Type)이라고 한다.

중첩 데이터 타입

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

let personJob: Person.Job = .jobless
  • 자신을 둘러싼 타입의 이름을 자신보다 앞에 적어줘야 한다.
  • Person 클래스 내부에 정의한 Job 타입을 나타내려면 위처럼 Person.Job이라고 표현
  • Student가 Person을 상속받는다면, Student 클래스에서도 중첩데이터로 취급 가능
class Student: Person {
 enum School {
  case elementary, middle, high
 }
 var school: School
 init(school: School) {
  self.school = school
  super.init()
  self.job = .student
 }
}
// 자식클래스에서 부모클래스 중첩타입에 접근가능
let studentJob: Student.Job = .student
let student = Student(school: .middle)
// student.job // 부모클래스 프로퍼티에도 접근 가능
// student.school
  • 이름이 같더라도 역할이 달라야 할 때, 외부에서 사용하면 혼용의 가능성이 있어서 내부에서만 사용하려고 할 때 유용하다.
profile
IOS Developer

0개의 댓글