プログラムを理解しようとするときや、特殊なケースでは、何かがどんな型であるかを知ることは有用です。デバッガがいくつかの型情報を表示できることは知っていますし、そのような状況では型を指定せずに済むように型推論に頼ることもできますが、それでも、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()
まだ、与えられた物体の種類を実際に発見するための小さな一歩に過ぎない。
編集: 今では無関係な詳細をかなり削除しました。興味があれば編集履歴をご覧ください:)
ベストアンサー1
Swift 3 バージョン:
type(of: yourObject)