我最近注意到某些代码会启动诸如className.self()之类的实例:
let realm = try! Realm.self()
从输出和此后的用法中,就像没有它一样-Realm()
是否有任何特定原因或使用.self的初始化?
这有点猜测,但我相信在领域的背景下使用 Type.self()
的地方遵循了一种误解的惯例,该约定遵循(某些无关)Swift团队解决错误
- SR-899:如果一个函数只有一个参数 ,则可以省略
.self
领域团队的以下提交正在为上述错误的预期解决方案做准备:
- #3712-将类型传递给Realm Swift API 时,明确使用'
Type.self
'符号在上面的提交中的更改(在适当的上下文中,Type
更新为Type.self
)启发了代码库,这些代码库也可以利用领域来在初始化器上下文中使用Type.self
,即Type.self()
。但是,这是.self
后缀的多余使用。