使用Playground快速练习Swift语法--扩展与协议
发布时间:2020-12-14 02:42:50 所属栏目:百科 来源:网络整理
导读:扩展(Extensions) Swift中的扩展功能可以动态给类增加功能,类似于Javascript中的 prototype , 这在Swift这样的非脚本语言中竟然也有这样的功能,真是很逆天
扩展(Extensions)Swift中的扩展功能可以动态给类增加功能,类似于Javascript中的prototype, 扩展语法extension SomeType { //加入新功能 } 扩展例子
extension Double { var km: Double { return self * 1000.0 } } print("25.4千米 = ( 25.4.km)米")
func getChineseNumber(number: Int) -> String { let ch = "零一二三四五六七八九" let index = advance(ch.startIndex,number) return String(ch[index]) } extension Int { func toChineseNumber() -> String { var result = "" var num = self repeat { result = getChineseNumber(num % 10) + result num = num / 10 } while num > 0 return result } } 1234567890.toChineseNumber() 协议(Protocol)Swift中的协议类似于Java中的接口(Interface),但Swift中的协议更强大,协议中不仅可以定义方法, 协议语法protocol SomeProtocol { // 协议内容 } class SomeClass: SomeSuperClass,SomeProtocol { // 类的内容 } 协议例子protocol FullyNamed { var fullName: String { get } func greeting() -> String } class Person: FullyNamed{ var fullName: String = "" init(fullName:String){ self.fullName = fullName } func greeting() -> String { return "hello " + fullName; } } let zhansan = Person(fullName: "张三") print(zhansan.greeting()) 参考资料The Swift Programming Language 中文版
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |