上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 102 下一页
摘要: 一、多态的本质 多态的本质:同一函数接口在接受不同的类型参量时表现出不同的行为: 不同对象能够调用同一接口,是因为它们含有统一的抽象纬度:接口; 同一函数能够接受不同对象的调用,是因为函数的参量是一个抽象类型(接口); 环境变量(主体类型)作为接口函数的特殊输入对接口的实现起着决定性的作用; 同一个 阅读全文
posted @ 2019-03-14 17:40 zzfx 阅读(402) 评论(0) 推荐(0)
摘要: 类型约束的本质是:类型构造器在约束类型的基础上构造新的类型 阅读全文
posted @ 2019-03-14 17:21 zzfx 阅读(137) 评论(0) 推荐(0)
摘要: 类型约束的描述,属于声明式编程的一支; 基于类型约束的编程: 1、基于约束的类型声明: 只有符合约束的类型才能进行赋值; 2、基于类型约束的函数构造; 这里主要指新函数的构造; 函数是一种特殊的类型,是绑定在数据类型上的类型; 只有符合类型约束的构造类型的实例(符合类型),才能访问这些函数类型; 3 阅读全文
posted @ 2019-03-14 15:56 zzfx 阅读(194) 评论(0) 推荐(0)
摘要: 复合类型(类型构造器)的基本功能由复合类型的主类型确定; 复合类型的扩展功能由主类型和参量类型共同确定; 函数式编程的功能扩展由高阶函数和混入函数完成 public struct Array<Element> { public func map<T>(_ transform: (Element) t 阅读全文
posted @ 2019-03-14 11:33 zzfx 阅读(169) 评论(0) 推荐(0)
摘要: swift面向协议编程的根本原因在于值类型的存在;面向对象必须要有引用类型的支持; Protocol Oriented approach was introduced to resolve some issues in programming and it also differs in vario 阅读全文
posted @ 2019-03-13 19:32 zzfx 阅读(342) 评论(0) 推荐(0)
摘要: 所谓swift的类型擦除是指: moand转换; 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议、接口、或基类)暴露出来。 AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只将协议类型的信息暴露出 阅读全文
posted @ 2019-03-13 18:31 zzfx 阅读(381) 评论(0) 推荐(0)
摘要: AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来。 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口)。 A type-erased hashable value. public struct AnyHashable 阅读全文
posted @ 2019-03-13 18:13 zzfx 阅读(788) 评论(0) 推荐(0)
摘要: swift语言的特征: 类型系统:值类型与引用类型、泛型、协议类型 函数式编程: 阅读全文
posted @ 2019-03-13 18:10 zzfx 阅读(290) 评论(0) 推荐(0)
摘要: 类型与算法是绑定的,绑定的方式有以下几种: 1、类型定义时直接绑定; 2、扩展绑定; 3、继承绑定; 4、全局函数绑定; 阅读全文
posted @ 2019-03-13 17:45 zzfx 阅读(374) 评论(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 阅读(299) 评论(0) 推荐(0)
摘要: ?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo 阅读全文
posted @ 2019-03-13 16:02 zzfx 阅读(318) 评论(0) 推荐(0)
摘要: 关键词: 类型与功能绑定、类型指定、访问控制。 类型约束的本质: 1、是否强制指定具有某些特征的类型;看类型构造器的定义本身是否对类型有约束; 2、访问控制:类型构造器的功能分为通用功能和约束功能; 通用功能任何实例类型都能访问; 约束功能,只有符合约束的构造实例能够访问。 类型与算法(功能)绑定; 阅读全文
posted @ 2019-03-13 15:22 zzfx 阅读(473) 评论(0) 推荐(0)
摘要: 接口:what; 实现:算法;指令; 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程。 命令式编程可以与算法划等号;算法要求严格的计算逻辑和控制,是实施细节的精准描述; 命令式编程与声明式编程只是侧重点的不同。一个侧重计算控制,一个侧重逻辑描述。 命令式编程通过一系列改变程序状态的指令来 阅读全文
posted @ 2019-03-11 22:10 zzfx 阅读(689) 评论(0) 推荐(0)
摘要: 三个关注点:1、形式;2、实现方式;3、使用方式; 一、基本形式: 形式:内部无泛型类型; 实现:只需指定类型和实现相应的功能即可; 使用:可以用在其他类型出现的任何地方; protocol Response { /// The task metrics containing the request 阅读全文
posted @ 2019-03-11 18:51 zzfx 阅读(2143) 评论(0) 推荐(0)
摘要: 高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。 阅读全文
posted @ 2019-03-11 17:04 zzfx 阅读(333) 评论(0) 推荐(0)
摘要: 泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据 阅读全文
posted @ 2019-03-11 16:56 zzfx 阅读(345) 评论(0) 推荐(0)
摘要: 类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型; 阅读全文
posted @ 2019-03-11 15:59 zzfx 阅读(217) 评论(0) 推荐(0)
摘要: 安全,有了类型系统以后就可以实现类型安全,这时候程序就变成了一个严格的数学证明过程,编译器可以机械地验证程序某种程度的正确性,从而杜绝很多错误的发生。正面例子:Haskell、Rust反面例子:C,动态语言 抽象能力,在安全的前提下,一个强大的类型系统的标准是抽象能力,能将程序中的很多东西纳入安全的 阅读全文
posted @ 2019-03-11 15:51 zzfx 阅读(487) 评论(0) 推荐(0)
摘要: 1、单体(数据)映射:基本操作;数据的单次映射; 2、管道流:数据的流程化处理 基础是monand类型,形式是声明式编程; Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得到唯一的终于输出。 阅读全文
posted @ 2019-03-11 15:32 zzfx 阅读(458) 评论(0) 推荐(0)
摘要: <高阶函数定义了高阶类型的处理(映射)、低阶函数处理了低阶类型的映射,高阶函数依赖于低阶函数> 高阶函数的特点: 1、定义的高阶函数本身的实现 ; 2、定义了参量函数的接口:输入、输出; 3、定义了高阶函数的功能部分对输入函数的引用或使用方式。 语义:定义高阶函数并声明混入函数的接口 本质是暴露低阶 阅读全文
posted @ 2019-03-11 11:53 zzfx 阅读(1542) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 102 下一页