Swift泛型语法⾼级处理⼀例
Swift参考某⼏种语⾔,增加了泛型这⼀机制,让⼈⼜爱⼜恨。
泛型增加了语⾔的表现⼒,减少了冗余,这是好消息;然⽽坏消息是:对于复杂的实现来说,七绕⼋不绕,语法容易把⼈搞晕…以下就是⼀例。
这是从我实际的项⽬中摘出来的例⼦,做了简化。有童鞋看到后⾯的代码可能会问,这么简单的问题,⼲嘛要绕圈写这么复杂的实现这不前⾯说了么,因为实际的项⽬复杂这⾥只是简化到讲解本主题,所以若有词不达意,也请包涵。
这⾥有⼀个通⽤协议和另⼀个Main协议,Main协议遵守通⽤协议:
protocol CommonDelegate {
associatedtype Item
func invoke(with item:Item)
}
学swift语言能干什么
protocol MainDelegate:CommonDelegate {
func save(with item:Item)
}
这⾥⽐较奇怪的是Item类型,它是什么呢?它是实际要操作的Model。
因为上述协议和遵守协议的类在Framework中,⽽实际的Model在App⾥,所以有必要再写⼀个Model协议:
protocol FooDelegate{

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。