@dynamicMemberLookup
2025. 11. 19. 11:30ㆍSwift
dynamicMemberLookup 말그대로 런타임에 멤버를 바라볼 수 있다는 뜻이예요.
@dynamicMemberLookup을 선언하면,
- 컴파일 타임에 정의하지 않은 프로퍼티라도 subscript(dynamicMember:) 메서드를 통해 런타임에 처리할 수 있도록 도와줘요.
- "dot"을 통해 해당 타입의 프로퍼티에 접근할 수 있어요.
@dynamicMemberLookup을 선언하면 subscript(dynamicMember:) 메서드는 필수적으로 구현해주어야 합니다!
@dynamicMemberLookup
struct User {
var name: String
var like: String
subscript(dynamicMember key: String) -> String {
switch key {
case "hobby":
return like
default:
return "none"
}
}
}
let member = User(name: "Jaelee", like: "보드")
// 사용 방법 1: dot (dynamicMemberLookup 덕분에 가능)
member.hobby
// 사용 방법 2: subscript
member[dynamicMember: "hobby"]
반응형