上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 101 下一页
摘要: 所谓swift的类型擦除是指: moand转换; 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议、接口、或基类)暴露出来。 AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只将协议类型的信息暴露出 阅读全文
posted @ 2019-03-13 18:31 zzfx 阅读(393) 评论(0) 推荐(0)
摘要: AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来。 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口)。 A type-erased hashable value. public struct AnyHashable 阅读全文
posted @ 2019-03-13 18:13 zzfx 阅读(809) 评论(0) 推荐(0)
摘要: swift语言的特征: 类型系统:值类型与引用类型、泛型、协议类型 函数式编程: 阅读全文
posted @ 2019-03-13 18:10 zzfx 阅读(311) 评论(0) 推荐(0)
摘要: 类型与算法是绑定的,绑定的方式有以下几种: 1、类型定义时直接绑定; 2、扩展绑定; 3、继承绑定; 4、全局函数绑定; 阅读全文
posted @ 2019-03-13 17:45 zzfx 阅读(391) 评论(0) 推荐(0)
摘要: Type Erasure Pattern We can use the type erasure pattern to combine both generic type parameters and associated types to satisfy both the compiler and 阅读全文
posted @ 2019-03-13 17:28 zzfx 阅读(321) 评论(0) 推荐(0)
摘要: ?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo 阅读全文
posted @ 2019-03-13 16:02 zzfx 阅读(329) 评论(0) 推荐(0)
摘要: 关键词: 类型与功能绑定、类型指定、访问控制。 类型约束的本质: 1、是否强制指定具有某些特征的类型;看类型构造器的定义本身是否对类型有约束; 2、访问控制:类型构造器的功能分为通用功能和约束功能; 通用功能任何实例类型都能访问; 约束功能,只有符合约束的构造实例能够访问。 类型与算法(功能)绑定; 阅读全文
posted @ 2019-03-13 15:22 zzfx 阅读(501) 评论(0) 推荐(0)
摘要: 接口:what; 实现:算法;指令; 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程。 命令式编程可以与算法划等号;算法要求严格的计算逻辑和控制,是实施细节的精准描述; 命令式编程与声明式编程只是侧重点的不同。一个侧重计算控制,一个侧重逻辑描述。 命令式编程通过一系列改变程序状态的指令来 阅读全文
posted @ 2019-03-11 22:10 zzfx 阅读(707) 评论(0) 推荐(0)
摘要: 三个关注点:1、形式;2、实现方式;3、使用方式; 一、基本形式: 形式:内部无泛型类型; 实现:只需指定类型和实现相应的功能即可; 使用:可以用在其他类型出现的任何地方; protocol Response { /// The task metrics containing the request 阅读全文
posted @ 2019-03-11 18:51 zzfx 阅读(2162) 评论(0) 推荐(0)
摘要: 高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。 阅读全文
posted @ 2019-03-11 17:04 zzfx 阅读(355) 评论(0) 推荐(0)
摘要: 泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据 阅读全文
posted @ 2019-03-11 16:56 zzfx 阅读(367) 评论(0) 推荐(0)
摘要: 类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型; 阅读全文
posted @ 2019-03-11 15:59 zzfx 阅读(225) 评论(0) 推荐(0)
摘要: 安全,有了类型系统以后就可以实现类型安全,这时候程序就变成了一个严格的数学证明过程,编译器可以机械地验证程序某种程度的正确性,从而杜绝很多错误的发生。正面例子:Haskell、Rust反面例子:C,动态语言 抽象能力,在安全的前提下,一个强大的类型系统的标准是抽象能力,能将程序中的很多东西纳入安全的 阅读全文
posted @ 2019-03-11 15:51 zzfx 阅读(503) 评论(0) 推荐(0)
摘要: 1、单体(数据)映射:基本操作;数据的单次映射; 2、管道流:数据的流程化处理 基础是monand类型,形式是声明式编程; Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得到唯一的终于输出。 阅读全文
posted @ 2019-03-11 15:32 zzfx 阅读(489) 评论(0) 推荐(0)
摘要: https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/ 阅读全文
posted @ 2019-03-10 22:03 zzfx 阅读(293) 评论(0) 推荐(0)
摘要: 类型推断的前提是有待定类型和上下文。 1、由定义推断实现的类型; 2、由赋值推断声明的类型; 3、由实现推断泛型的类型; Type inference refers to the automatic detection of the data type of an expression in a p 阅读全文
posted @ 2019-03-10 21:57 zzfx 阅读(490) 评论(0) 推荐(0)
摘要: 对每一门编程语言的掌握都要仔细考究着门语言的类型系统。 阅读全文
posted @ 2019-03-10 12:06 zzfx 阅读(161) 评论(0) 推荐(0)
摘要: 理论和实际的学校是一个交互向上的过程。 理论是抽象的东西,是一般的东西; 实际是具体的东西,是个例; 从理论到具体是演绎; 从具体到理论时归纳; 理论的学校用于指导实际; 具体的分析用于强化理论; 二者的学习是一个交互的过程; 没有实际支撑的理论是纸上谈兵、是空洞之物; 没有理论支撑的实际是形而下, 阅读全文
posted @ 2019-03-09 14:58 zzfx 阅读(582) 评论(0) 推荐(0)
摘要: 一、术语:指定类型 typealias:用于给关联类型指定类型; 通过类型推断给关联类型指定类型太过烧脑; 二、类型指定 1、具体类型实现协议后,直接指定;作为普通的泛型类型使用,指定类型即可; 2、将协议实现为泛型构造器,关联类型通过泛型构造器的输入类型指定; 3、关联类型本身有协议约束;需要先构 阅读全文
posted @ 2019-03-08 19:38 zzfx 阅读(686) 评论(0) 推荐(0)
摘要: 关联类型的形式为类型的引用进而进行约束提供了条件; 同时能够简化语法形式。 Swift: Associated Types http://www.russbishop.net/swift-associated-types Associated Types Series Swift Associate 阅读全文
posted @ 2019-03-08 19:38 zzfx 阅读(824) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 101 下一页