プログラムを理解しようとするとき、または一部のケースでは、何かのタイプを実際に見つけることができると便利です。デバッガーがいくつかの型情報を表示できることを知っています。通常、型推論に依存して、そのような状況で型を指定しないことで回避できますが、それでも、Pythonのようなものが欲しいですtype()
dynamicType(この質問を参照)
更新:これは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()
それでも、特定のオブジェクトのタイプを実際に発見するためのほんの小さなステップ
編集:私は今かなりの数の無関係な詳細を削除しました-興味があれば編集履歴を見てください:)
print(mc)
またはどこかにクラス名が含まdump(mc)
れる要約(toString(mc)
またはから取得できるreflect(mc).summary
)を出力します。しかし、自分でクラス名だけを取得する方法は明確ではありません。