本文共 630 字,大约阅读时间需要 2 分钟。
声明扩展的语法格式如下:
1 2 3 | extension 类型名 { //添加新功能 } |
声明扩展的关键字是extension,“类型名”是Swift中已有的类型,包括类、结构体和枚举,但是我们仍然可以扩展整型、浮点型、布尔型、字符串等基本数据类型,这是因为这些类型本质上也是结构体类型。打开Int的定义如下:
1 2 3 4 5 6 7 8 9 | struct Int : SignedInteger{ init() init(_ value: Int) static funcconvertFromIntegerLiteral(value: Int) -> Int typealias ArrayBoundType = Int func getArrayBoundValue() -> Int static var max: Int { get } static var min: Int { get } } |
从定义可见Int是结构体类型。不仅是Int类型,我们熟悉的整型、浮点型、布尔型、字符串等数据类型本质上都是结构体类型。
Swift中的扩展机制可以在原始类型中添加的新功能包括:
实例计算属性和类型计算属性
实例方法和类型方法
构造函数
下标
还有嵌套类型等内容也可以扩展,扩展还可以遵从协议。
本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1747536,如需转载请自行联系原作者