摘要: Swift 的 extension 机制很强大,不仅可以针对自定义的类型,还能作用于系统库的类型,甚至基础类型比如 Int。当在对系统库做 extension 的时候,就会涉及到一个命名冲突的问题。Objective-C 时代的通行解决办法是在扩展方法名字的最前面加上 XXX_ 形式的前缀。这种形式 阅读全文
posted @ 2018-09-25 17:42 zzfx 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 最近在看一些Swift开源库的时候,发现了一些优秀的开源库都使用了命名空间,例如Kingfisher这个开源库中,就针对UIImage,UIImageView,UIButton做了命名空间的扩展。通过logoImageView.kf.setImage(url)这种方式能够很好地避免扩展的命名冲突,而 阅读全文
posted @ 2018-09-25 17:40 zzfx 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Functor,即函子,是 Haskell 中普遍存在的、最基本的类型类。你可以用以下两种方式来理解 Functor: 它代表某种容器,该容器能够将某一函数应用到其每一个元素上。 它代表某种“可计算上下文”(computational context)。 https://www.cnblogs.co 阅读全文
posted @ 2018-09-25 17:35 zzfx 阅读(211) 评论(0) 推荐(0) 编辑
摘要: class GooClass { deinit { print("aaaaaaaa") } var str = "gooClass" } struct GooStruct { var goo = GooClass() } extension ViewController{ var gooStruct 阅读全文
posted @ 2018-09-25 15:06 zzfx 阅读(192) 评论(0) 推荐(0) 编辑