上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 101 下一页
摘要: Objective-C没有命名空间,为了避免冲突,Objective-C的类型一般都会加上两到三个字母的前缀,比如Apple保留的NS和UI前缀,各个系统框架的前缀,各个系统框架的前缀SK(StoreKit),CG(CoreGraphic)等。 Swift的命名空间是基于module而不是在代码中显 阅读全文
posted @ 2018-09-26 20:01 zzfx 阅读(539) 评论(0) 推荐(0)
摘要: 类型系统是编程语言的基石 Type systems are generally formulated as collections of rules for checking the “con- sistency” of programs. This kind of checking exposes 阅读全文
posted @ 2018-09-26 17:39 zzfx 阅读(248) 评论(0) 推荐(0)
摘要: 泛型类型是高阶类型的必经之路。 阅读全文
posted @ 2018-09-26 17:07 zzfx 阅读(210) 评论(0) 推荐(0)
摘要: 具体类型:能够初始化; 抽象类型:不能直接初始化; 类型参量:泛型和高阶类型的通道; 类型约束:泛型到高阶类型的通道。 基础类型; 结构类型; 容器类型; 高阶类型; 泛型、抽象类型: 类型是否能够直接初始化。 低阶类型与高阶类型的转化。 阅读全文
posted @ 2018-09-26 16:49 zzfx 阅读(224) 评论(0) 推荐(0)
摘要: 类型转化:任意类型、继承体系类型、基础类型的平级转化; 类型变化:值类型与容器类型的迭代变换。适配器模式、代理模式等。 阅读全文
posted @ 2018-09-26 16:46 zzfx 阅读(276) 评论(0) 推荐(0)
摘要: Swift 的 extension 机制很强大,不仅可以针对自定义的类型,还能作用于系统库的类型,甚至基础类型比如 Int。当在对系统库做 extension 的时候,就会涉及到一个命名冲突的问题。Objective-C 时代的通行解决办法是在扩展方法名字的最前面加上 XXX_ 形式的前缀。这种形式 阅读全文
posted @ 2018-09-25 17:42 zzfx 阅读(790) 评论(0) 推荐(0)
摘要: 最近在看一些Swift开源库的时候,发现了一些优秀的开源库都使用了命名空间,例如Kingfisher这个开源库中,就针对UIImage,UIImageView,UIButton做了命名空间的扩展。通过logoImageView.kf.setImage(url)这种方式能够很好地避免扩展的命名冲突,而 阅读全文
posted @ 2018-09-25 17:40 zzfx 阅读(221) 评论(0) 推荐(0)
摘要: Functor,即函子,是 Haskell 中普遍存在的、最基本的类型类。你可以用以下两种方式来理解 Functor: 它代表某种容器,该容器能够将某一函数应用到其每一个元素上。 它代表某种“可计算上下文”(computational context)。 https://www.cnblogs.co 阅读全文
posted @ 2018-09-25 17:35 zzfx 阅读(229) 评论(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 阅读(231) 评论(0) 推荐(0)
摘要: Locations for Public Frameworks Third-party frameworks can go in a number of different file-system locations, depending on certain factors. Most publi 阅读全文
posted @ 2018-09-21 19:11 zzfx 阅读(140) 评论(0) 推荐(0)
摘要: 能自证的任意类型即为动态类型; 扩展:能自证的继承体系类型即为动态类型(小); 阅读全文
posted @ 2018-09-21 14:31 zzfx 阅读(136) 评论(0) 推荐(0)
摘要: 1、编译器只对确定类型进行检查; 2、类型转换是否能够成功有没有明确的判断;编译时or运行时; 3、任意类型不参与编译时类型检查; 任意类型不能直接参与运算,必须转化为确定的类型; 任意类型转化为确定类型是否需要显式转化。 强类型:类型检查(编译时)和转化(运行时)都有明确的状态信息; 中类型:类型 阅读全文
posted @ 2018-09-21 14:04 zzfx 阅读(283) 评论(0) 推荐(0)
摘要: 动态类型:变量的实际类型信息能够在在运行时(获取)确定;编译时不做类型检查。 弱类型:变量的类型信息能够在运行时改变。 阅读全文
posted @ 2018-09-21 12:56 zzfx 阅读(188) 评论(0) 推荐(0)
摘要: Swift Intermediate Language (SIL) https://github.com/apple/swift/blob/master/docs/SIL.rst#witness-method 阅读全文
posted @ 2018-09-20 17:59 zzfx 阅读(361) 评论(0) 推荐(0)
摘要: VTables https://github.com/apple/swift/blob/master/docs/SIL.rst#vtables decl ::= sil-vtable sil-vtable ::= 'sil_vtable' identifier '{' sil-vtable-entr 阅读全文
posted @ 2018-09-20 17:48 zzfx 阅读(351) 评论(0) 推荐(0)
摘要: In this example: protocol MyProtocol { func testFuncA() } extension MyProtocol { func testFuncA() { print("MyProtocol's testFuncA") } } class MyClass 阅读全文
posted @ 2018-09-20 14:49 zzfx 阅读(191) 评论(0) 推荐(0)
摘要: Swift protocol extension method is called instead of method implemented in subclass protocol MyProtocol { func methodA() func methodB() } extension My 阅读全文
posted @ 2018-09-20 14:48 zzfx 阅读(161) 评论(0) 推荐(0)
摘要: 1、v-table; class 2、WitnessTable protocol 3、消息派发。 @objc dynamic 阅读全文
posted @ 2018-09-20 11:51 zzfx 阅读(318) 评论(0) 推荐(0)
摘要: 顶级修饰 次级修饰 赋值类型 存储类型 值类型 值类型 深拷贝 栈 值类型 引用类型 浅拷贝 堆 引用类型 值类型 浅拷贝 堆 引用类型 引用类型 浅拷贝 堆 复合引用类型会改变内部值类型的存储行为。 以上内容为推测 阅读全文
posted @ 2018-09-20 11:41 zzfx 阅读(313) 评论(0) 推荐(0)
摘要: 运行时与动态是一个密切相关的概念: 动态加载; 动态类型识别; 动态派发; 内存管理; In the object-oriented programming languages, the runtime system was often also responsible for dynamic ty 阅读全文
posted @ 2018-09-20 11:06 zzfx 阅读(186) 评论(0) 推荐(0)
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 101 下一页