主要观点:
- 语言指导小组征集关于 Swift 中访问器的前瞻性愿景的反馈,愿景文档描述 Swift 的总体方向,具体细节不如总体方向重要。
- 介绍了 Swift 中属性和下标可通过提供获取或更新值的“访问器”来实现,当前的
get
和set
访问器在处理某些操作时存在问题,如复制值导致性能和内存开销等。 - 探讨了多种历史上探索的访问器,此愿景文档为未来几年的访问器设计空间奠定基础,解释了 Swift 的基本访问模型及可能的演进。
- 多位开发者对该愿景提出了不同看法和建议,包括对库演化、ABI 兼容性、异步、
KeyPath
扩展、访问器命名、不同访问器的作用及相互关系等方面的讨论。
关键信息:
- 提供了具体的代码示例来说明
get
和set
访问器的使用及存在的问题。 - 提及了如
borrow
、mutating set
、nonmutating set
等不同类型的访问器及其在不同情况下的限制和影响。 - 讨论了
willSet
、didSet
与其他访问器的关系及调用时机。 - 强调了源兼容性和存储/计算属性灵活性之间的平衡,以及编译器在处理不同访问器时的工作。
重要细节:
- 介绍了在不同场景下(通过协议要求、类的非
final
成员、不同库等)访问器抽象的必要性及现有问题。 - 列举了多位开发者的具体观点和建议,如
jrose
提出的关于库演化和 ABI 兼容性的担忧,Karl
对async
、throws
和KeyPath
扩展的看法,OneSadCookie
对当前访问器设计的复杂性和潜在损害的分析等。 - 详细讨论了不同访问器之间的组合、相互作用以及在协议中的应用等方面的问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。