在试图理解一个程序时,或者在某些极端情况下,找出某个东西的类型是很有用的。我知道调试器可以向你显示一些类型信息,在这些情况下,你通常可以依靠类型推断来避免不指定类型,但我仍然非常希望有类似Python的type()
这样的东西
更新:在Swift的最新版本中已经更改,obj.dynamicType
现在给你一个对类型的引用,而不是动态类型的实例。
这款似乎最有希望,但到目前为止我还没能找到实际的型号。
class MyClass {
var count = 0
}
let mc = MyClass()
# update: this now evaluates as true
mc.dynamicType === MyClass.self
我还尝试使用类引用来实例化一个新对象,做可以工作,但奇怪的是,它给了我一个错误,告诉我必须添加required
初始化器:
工作原理:
class MyClass {
var count = 0
required init() {
}
}
let myClass2 = MyClass.self
let mc2 = MyClass2()
不过,要真正发现任何给定对象的类型,这仍然只是一小步
编辑:我已经删除了大量现在不相关的细节-如果你感兴趣,看看编辑历史:)