位置:首頁 > 高級語言 > Swift教學 > Swift元類型

Swift元類型

元類型

元類型是指所有類型的類型,包括類、結構體、枚舉和協議。

類、結構體或枚舉類型的元類型是相應的類型名緊跟.Type。協議類型的元類型——並不是運行時適配該協議的具體類型——是該協議名字緊跟.Protocol。比如,類SomeClass的元類型就是SomeClass.Type,協議SomeProtocol的元類型就是SomeProtocal.Protocol

你可以使用後綴self表達式來獲取類型。比如,SomeClass.self返回SomeClass本身,而不是SomeClass的一個實例。同樣,SomeProtocol.self返回SomeProtocol本身,而不是運行時適配SomeProtocol的某個類型的實例。還可以對類型的實例使用dynamicType表達式來獲取該實例在運行階段的類型,如下所示:

class SomeBaseClass {
    class func printClassName() {
        println("SomeBaseClass")
    }
}
class SomeSubClass: SomeBaseClass {
    override class func printClassName() {
        println("SomeSubClass")
    }
}
let someInstance: SomeBaseClass = SomeSubClass()
// someInstance is of type SomeBaseClass at compile time, but
// someInstance is of type SomeSubClass at runtime
someInstance.dynamicType.printClassName()
// prints "SomeSubClass

元(Metatype)類型語法
元類型 → 類型 . Type | 類型 . Protocol x