swift 进阶笔记 (三) —— 元类型
2014-06-20 22:55
169 查看
元类型
元类型是指所有的类型的类型,包括类,结构体,枚举和协议等。
类,结构体,枚举的元类型:类型名.Type,比如:
class MyClass {
}
MyClass的元类型是 MyClass.Type
协议的元类型:协议名.Protocol, 比如:
protocol MyProtocol {
}
MyProtocol的元类型是 MyProtocol.Protocol
虽然不能直接这样用,但是我们会在报错提示中看到这样的字样。
下面说个我们可以拿来用的:
self
这个关键字我们之前经常会用,但是它还有另外的意思,比如:
MyClass.self 代表的是MyClass这个类的定义,而不是它的实例。在playground里可以看到 显示的是Metatype
同样的,协议也可以:
MyProtocol.self
实例中我们也可以获取运行时的类型
printClassName是个类方法, someInstance是基类的类型,现在他是子类的引用,在调用了 printClassName的时候,可以清楚的显示出,它调用的是子类的重写方法,多么明确的多态调用,赞!
元类型是指所有的类型的类型,包括类,结构体,枚举和协议等。
类,结构体,枚举的元类型:类型名.Type,比如:
class MyClass {
}
MyClass的元类型是 MyClass.Type
协议的元类型:协议名.Protocol, 比如:
protocol MyProtocol {
}
MyProtocol的元类型是 MyProtocol.Protocol
虽然不能直接这样用,但是我们会在报错提示中看到这样的字样。
下面说个我们可以拿来用的:
self
这个关键字我们之前经常会用,但是它还有另外的意思,比如:
MyClass.self 代表的是MyClass这个类的定义,而不是它的实例。在playground里可以看到 显示的是Metatype
同样的,协议也可以:
MyProtocol.self
实例中我们也可以获取运行时的类型
printClassName是个类方法, someInstance是基类的类型,现在他是子类的引用,在调用了 printClassName的时候,可以清楚的显示出,它调用的是子类的重写方法,多么明确的多态调用,赞!
相关文章推荐
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定
- 马哥学习笔记十四——MySQL进阶之数据类型和sql模型
- swift 进阶笔记 (一) —— 可选型
- 苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
- 苹果新的编程语言 Swift 语言进阶(二)--基本数据类型
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定
- Swift学习笔记(二)字符串和集合类型操作
- 苹果新的编程语言 Swift 语言进阶(十三)--类型检查与类型嵌套
- 苹果新的编程语言 Swift 语言进阶(十三)--类型检查与类型嵌套
- 第3篇:swift语言笔记:基本语法/运算符/数据类型/字符串等关键点
- Swift 笔记 (四) —— 集合类型
- 苹果新的编程语言 Swift 语言进阶(二)--基本数据类型
- 苹果新的编程语言 Swift 语言进阶(二)--基本数据类型
- swift 进阶笔记 (二) —— 柯里化函数
- 苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定
- Swift学习笔记之类型安全和推导
- 苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
- 【Swift】学习笔记(一)——初识 基础数据类型,代码风格,元组,断言
- Swift 学习笔记一 基本数据类型和简单语句语法