扩展可以包含便捷初始化程序。例如,一个失败的初始化器Int接受NSString:
extension Int {
init?(_ string: NSString) {
self.init(string as String) // 委托给现有的Int.init(String)初始化程序
}
}
let str1: NSString = "42"
Int(str1) // 42
let str2: NSString = "abc"
Int(str2) // 零