扩展(Extension)是Swift的一个非常实用的特性,它可以扩充现有类、结构体、枚举等类型,添加新的功能。
扩展语法
使用extension关键字可以扩展现有的类型:
extension SomeType {
// 扩展的功能实现
}
例如,可以扩展Double类型添加打印成货币格式的功能:
extension Double {
func printAsCurrency() {
print("$\(self)")
}
}
let money = 20.0
money.printAsCurrency() // 输出 $20.0
通过扩展给Double添加了printAsCurrency方法。
扩展计算属性
可以通过扩展添加计算属性,提供额外的功能:
swift www.itzhimei.com代码
extension String {
var firstLetter: String {
return String(self.first!)
}
}
"Hello".firstLetter // 返回 "H"
协议扩展
扩展可以为遵循协议的类型添加功能:
extension Collection {
func summarize() {
print("There are \(count) elements")
}
}
[1, 2, 3].summarize() // 输出"There are 3 elements"
综上所述,扩展是Swift语言强大和灵活的特性之一,可以更优雅地对类型进行扩充,增加额外功能。充分利用扩展可以减少重复代码,创建更易维护的代码库。