Swift XXXLiteralConvertible 协议的使用

Swift XXXLiteralConvertible 协议的使用,第1张

概述struct Pos: IntegerLiteralConvertible { var x: Int = 0 var y: Int = 0 init(integerLiteral value: IntegerLiteralType) { x = value y = value }}let pos: Pos = 100
struct  Pos: IntegerliteralConvertible {    var x: Int = 0    var y: Int = 0        init(integerliteral value: IntegerliteralType) {        x = value        y = value    }}let pos: Pos = 100 //正常情况下,是无法用=号直接初始化结构体的,因为Pos继承了IntegerliteralConvertible 协议(接口)所以没有问题。println(pos.x)println(pos.y)/* 同样的还有BooleanliteralConvertiblefloatliteralConvertibleStringliteralConvertibleArrayliteralConvertibleDictionaryliteralConvertibleNilliteralConvertible*///再看一个Class的例子class Person: StringliteralConvertible {    var name = ""            init(name n:String){        name = n    }        typealias ExtendedGraphemeClusterliteralType = String    typealias UnicodeScalarliteralType = String        required convenIEnce init(stringliteral value: StringliteralType){        self.init(name: value)    }        //实际上起作用的是上面的方法,但是因为 StringliteralConvertible 同样继承自定义了下面两个方法的协议(代理),所以也要定义一次    required convenIEnce init(extendedGraphemeClusterliteral value: ExtendedGraphemeClusterliteralType){        self.init(name: value)    }        required convenIEnce init(unicodeScalarliteral value: UnicodeScalarliteralType){        self.init(name: value)    }        func call() {        println(name)    }}var zhang: Person = "123123"zhang.call() //123123
总结

以上是内存溢出为你收集整理的Swift XXXLiteralConvertible 协议的使用全部内容,希望文章能够帮你解决Swift XXXLiteralConvertible 协议的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存