[iOS-Swift] 중첩타입

TIL 10일 차 - Swift 문법 중첩타입

 

중첩된 타입은 하나의 타입 안에 다른 타입을 정의하는 것을 의미함

 

struct User {
	enum Role {
    	case admin
        case guest
     }
}
// Role이 User 안에 들어가 있음


let role: User.Role = .admin
// 접근방법: User 안에 있는 Role 타입의 admin

 

- 구조적으로 복잡한 클래스나 구조체등을 더 조직적으로 관리할 수 있음

- class, structure, enum등에서 사용할 수 있음

- 중첩된 타입을 사용하면 코드의 가독성을 높이고, 타입간의 연관성을 명확하게 할 수 있음

- 타입의 블록 안에서 다른 타입을 정의하고 사용하는 방식을 구현함

 

User.Role
User.Status
// 소속이 딱 보이고 코드 읽기 쉬움

 

 

중첩타입 활용 예시

struct Car {
    struct Company { // Car 안에 중첩된 Company 구조체
        var name: String
        var phoneNumber: String
        
        func contact() {
            print("\(name) 회사의 번호는 \(phoneNumber)입니다. ")
        }
    }
    
    enum Model {
        case sedan
        case hatchback
        case suv
    }
    
    var model: Model
    var company: Company
    var name: String
    var color: String
}

let myCar = Car(model: .sedan, company: Car.Company(name: "벤틀리", phoneNumber: "xxxx-xxxx"), name: "벤테이가", color: "pink")

myCar.company.contact() // myCar의 company 프로퍼티의 contact 함수를 실행함 '벤틀리 회사의 번호는 xxxx-xxxx입니다.' 출력
print(myCar.model) // myCar의 model 프로퍼티 출력함 (sedan)

'iOS  > Swift ' 카테고리의 다른 글

[iOS-Swift] 타입캐스팅  (0) 2026.01.09
[iOS-Swift] 접근 제어자  (0) 2026.01.08
[iOS-Swift] enum 열거형  (0) 2026.01.08
[iOS-Swift] 프로토콜  (0) 2026.01.08
[iOS-Swift] 인스턴스  (0) 2026.01.07