班级名称后是什么?Swift 3



我最近注意到某些代码会启动诸如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后缀的多余使用。

相关内容

最新更新