用什么类名后自己是什么?斯威夫特3

我最近注意到一些代码执行类似ClassName.self()的实例初始化,例如:

let realm = try! Realm.self()

从输出和之后的用法来看,就好像没有它 – Realm()

使用.self执行init是否有任何特定的原因或用法?

最佳答案 这有点推测,但我相信在Realm的上下文中使用Type.self()的地方遵循一个误解的约定,后来(一些无关紧要)Swift团队解决bug的影响

> SR-899: .self can be omitted if a function has only one parameter

Realm团队的以下提交正在为上述错误的预期解决做准备:

> #3712 – explicitly use ‘Type.self‘ notation when passing types to Realm Swift APIs

上面提交的更改(Type更新为Type.self,在适当的上下文中)可能激发了使用Realm在初始化上下文中使用Type.self的代码库,即Type.self().然而,这是.self后缀的多余使用.

点赞