上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 103 下一页
摘要: swift是强类型语言 强类型:变量的类型明确,变量的赋值必须符合类型约束;变量的类型转化必须显式进行。 强类型:类型规则的制定与检查; 动态类型:变量的具体类型由值类型确定,它的行为也由值类型确定; 动态类型、静态类型:强调类型的绑定; 相对于oc的kindof,允许类型的继承转换; 所有的类型转 阅读全文
posted @ 2019-03-15 15:19 zzfx 阅读(746) 评论(0) 推荐(0)
摘要: 协议多态: 函数式编程多态:高阶函数的多态性; 泛型多态:泛型的基于约束编程; 共同点:相同的接口,不同的行为; 阅读全文
posted @ 2019-03-14 18:27 zzfx 阅读(532) 评论(0) 推荐(0)
摘要: 面向对象的本质:基于对象+面向接口+继承。 继承是对面向接口编程的升级;使得接口的复用能在继承链上进行; 继承的另一重含义的复用。 阅读全文
posted @ 2019-03-14 17:47 zzfx 阅读(263) 评论(0) 推荐(0)
摘要: 一、多态的本质 多态的本质:同一函数接口在接受不同的类型参量时表现出不同的行为: 不同对象能够调用同一接口,是因为它们含有统一的抽象纬度:接口; 同一函数能够接受不同对象的调用,是因为函数的参量是一个抽象类型(接口); 环境变量(主体类型)作为接口函数的特殊输入对接口的实现起着决定性的作用; 同一个 阅读全文
posted @ 2019-03-14 17:40 zzfx 阅读(395) 评论(0) 推荐(0)
摘要: 类型约束的本质是:类型构造器在约束类型的基础上构造新的类型 阅读全文
posted @ 2019-03-14 17:21 zzfx 阅读(135) 评论(0) 推荐(0)
摘要: 类型约束的描述,属于声明式编程的一支; 基于类型约束的编程: 1、基于约束的类型声明: 只有符合约束的类型才能进行赋值; 2、基于类型约束的函数构造; 这里主要指新函数的构造; 函数是一种特殊的类型,是绑定在数据类型上的类型; 只有符合类型约束的构造类型的实例(符合类型),才能访问这些函数类型; 3 阅读全文
posted @ 2019-03-14 15:56 zzfx 阅读(193) 评论(0) 推荐(0)
摘要: 复合类型(类型构造器)的基本功能由复合类型的主类型确定; 复合类型的扩展功能由主类型和参量类型共同确定; 函数式编程的功能扩展由高阶函数和混入函数完成 public struct Array<Element> { public func map<T>(_ transform: (Element) t 阅读全文
posted @ 2019-03-14 11:33 zzfx 阅读(167) 评论(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 阅读(340) 评论(0) 推荐(0)
摘要: 所谓swift的类型擦除是指: moand转换; 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议、接口、或基类)暴露出来。 AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只将协议类型的信息暴露出 阅读全文
posted @ 2019-03-13 18:31 zzfx 阅读(374) 评论(0) 推荐(0)
摘要: AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来。 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口)。 A type-erased hashable value. public struct AnyHashable 阅读全文
posted @ 2019-03-13 18:13 zzfx 阅读(785) 评论(0) 推荐(0)
摘要: swift语言的特征: 类型系统:值类型与引用类型、泛型、协议类型 函数式编程: 阅读全文
posted @ 2019-03-13 18:10 zzfx 阅读(288) 评论(0) 推荐(0)
摘要: 类型与算法是绑定的,绑定的方式有以下几种: 1、类型定义时直接绑定; 2、扩展绑定; 3、继承绑定; 4、全局函数绑定; 阅读全文
posted @ 2019-03-13 17:45 zzfx 阅读(370) 评论(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 阅读(294) 评论(0) 推荐(0)
摘要: ?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo 阅读全文
posted @ 2019-03-13 16:02 zzfx 阅读(317) 评论(0) 推荐(0)
摘要: 关键词: 类型与功能绑定、类型指定、访问控制。 类型约束的本质: 1、是否强制指定具有某些特征的类型;看类型构造器的定义本身是否对类型有约束; 2、访问控制:类型构造器的功能分为通用功能和约束功能; 通用功能任何实例类型都能访问; 约束功能,只有符合约束的构造实例能够访问。 类型与算法(功能)绑定; 阅读全文
posted @ 2019-03-13 15:22 zzfx 阅读(471) 评论(0) 推荐(0)
摘要: 接口:what; 实现:算法;指令; 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程。 命令式编程可以与算法划等号;算法要求严格的计算逻辑和控制,是实施细节的精准描述; 命令式编程与声明式编程只是侧重点的不同。一个侧重计算控制,一个侧重逻辑描述。 命令式编程通过一系列改变程序状态的指令来 阅读全文
posted @ 2019-03-11 22:10 zzfx 阅读(686) 评论(0) 推荐(0)
摘要: 三个关注点:1、形式;2、实现方式;3、使用方式; 一、基本形式: 形式:内部无泛型类型; 实现:只需指定类型和实现相应的功能即可; 使用:可以用在其他类型出现的任何地方; protocol Response { /// The task metrics containing the request 阅读全文
posted @ 2019-03-11 18:51 zzfx 阅读(2138) 评论(0) 推荐(0)
摘要: 高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。 阅读全文
posted @ 2019-03-11 17:04 zzfx 阅读(331) 评论(0) 推荐(0)
摘要: 泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据 阅读全文
posted @ 2019-03-11 16:56 zzfx 阅读(342) 评论(0) 推荐(0)
摘要: 类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型; 阅读全文
posted @ 2019-03-11 15:59 zzfx 阅读(215) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 103 下一页