首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

@dynamicMemberLookup

使用@dynamicMemberLookup标记了目标(类、结构体、枚举、协议),实现subscript(dynamicMember member: String)方法后我们就可以访问到对象不存在的属性...核心内容 @dynamicMemberLookup:标记类、结构体、枚举、协议 subscript(dynamicMember member: String):实现该方法,可以像数组和字典一样,用下标的方式去访问属性...member 'name' print(p.name) 有了动态成员查找 // 标记 @dynamicMemberLookup struct Person { // 实现方法 subscript...subscript(dynamicMember member: String)方法的返回值类型根据访问属性的类型决定。 由于安全性的考虑,如果实现了这个特性,返回值不能是可选值,一定要有值返回。...解决办法是重载subscript(dynamicMember member: String)方法。和泛型的逻辑类似,通过类型推断来选择对应的方法。

63410

下标「建议收藏」

与定义实例方法类似,定义下标使用 subscript 关键字,指定一个或多个输入参数和返回类型;与实例方法不同的是,下标可以设定为读写或只读。...这种行为由 getter 和 setter 实现,有点类似计算型属性: subscript(index: Int) -> Int { get { // 返回一个适当的 Int 类型的值 } set...如同只读计算型属性,可以省略只读下标的 get 关键字: subscript(index: Int) -> Int { // 返回一个适当的 Int 类型的值 } 下面代码演示了只读下标的实现,这里定义了一个...TimesTable 结构体,用来表示传入整数的乘法表: struct TimesTable { let multiplier: Int subscript(index: Int) -> Int...你可以通过在 subscript 关键字之前写下 static 关键字的方式来表示一个类型下标。类可以使用 class 关键字来允许子类重写父类中对那个下标的实现。

1K20
领券