class 名称后的 .self 是做什么用的? Swift 3

What is .self after a class name used for? Swift 3

我最近注意到一些代码会初始化像 ClassName.self() 这样的实例,例如:

let realm = try! Realm.self()

从输出结果和之后的使用来看,就像没有它一样 - Realm()

使用 .self 进行初始化是否有任何特定原因或用途?

这有点猜测,但我相信 do 在 Realm 上下文中使用 Type.self() 的地方遵循了一个错误的约定,该约定遵循(有些无关紧要) Swift 团队解决错误的影响

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

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