swift - 结构测试:可识别与类测试:可识别
问题描述
struct Test: Identifiable {}
导致错误:“类型'测试'不符合协议'可识别'”。
它需要“id”属性。
class Test: Identifiable {}
编译没有任何问题。
为什么?
解决方案
来自SE-0261 可识别协议(强调我的):
为了尽可能方便地符合 Identifiable,为所有类实例提供了一个默认 id:
extension Identifiable where Self: AnyObject { var id: ObjectIdentifier { return ObjectIdentifier(self) } }
然后,其实例由其对象身份标识的类不需要显式提供 id:
final class Contact: Identifiable { var name: String init(name: String) { self.name = name } }
推荐阅读
- mongodb - 如何使用 $ pull 从嵌套数组 pymongo 的内部数组中删除元素
- powershell - Start-Process:系统找不到从 TeamCity Build 步骤指定的文件,但在本地工作正常
- sql - 我的 SQL Plus 插入语句中的字符无效
- javascript - 你如何在地图中增加超过 1?
- python-3.x - 语法警告:名称“项目”在全局声明全局项目之前分配
- sql - 引用其他表时对单个表使用 Delete 查询
- c# - C# WPF 非 mvvm 页面转换器
- sql - redshift regex 获取多个匹配项并扩展行
- debugging - 如何在 Haskell 中调试变量/递归数据类型
- ruby-on-rails - docker-compose 卷未在 Windows 10 上正确安装