当试图理解一个程序时,或者在某些极端情况下,能够真正找出某种类型的东西很有用。我知道调试器可以向您显示一些类型信息,并且您通常可以依靠类型推断来避免在那种情况下不指定类型,但是我仍然很想拥有类似Python的东西type()
type()
更新: 在Swift的最新版本中对此进行了更改,obj.dynamicType现在为您提供了对类型的引用,而不是动态类型的实例。
obj.dynamicType
这似乎是最有前途的,但到目前为止我还无法找出实际的类型
class MyClass { var count = 0 } let mc = MyClass() # update: this now evaluates as true mc.dynamicType === MyClass.self
我还尝试使用类引用实例化一个 确实 有效的新对象,但奇怪地给我一个错误,说我必须添加一个required初始化程序:
required
作品:
class MyClass { var count = 0 required init() { } } let myClass2 = MyClass.self let mc2 = MyClass2()
尽管实际上只是发现任何给定对象类型的一小步
编辑 :我已经删除了大量现在不相关的细节-如果您有兴趣,请查看编辑历史记录:)
Swift 3版本:
type(of: yourObject)