上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 101 下一页
摘要: 所谓swift的类型擦除是指: moand转换; 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议、接口、或基类)暴露出来。 AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只将协议类型的信息暴露出 阅读全文
posted @ 2019-03-13 18:31 zzfx 阅读(360) 评论(0) 推荐(0) 编辑
摘要: AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来。 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口)。 A type-erased hashable value. public struct AnyHashable 阅读全文
posted @ 2019-03-13 18:13 zzfx 阅读(767) 评论(0) 推荐(0) 编辑
摘要: swift语言的特征: 类型系统:值类型与引用类型、泛型、协议类型 函数式编程: 阅读全文
posted @ 2019-03-13 18:10 zzfx 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 类型与算法是绑定的,绑定的方式有以下几种: 1、类型定义时直接绑定; 2、扩展绑定; 3、继承绑定; 4、全局函数绑定; 阅读全文
posted @ 2019-03-13 17:45 zzfx 阅读(357) 评论(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 阅读(268) 评论(0) 推荐(0) 编辑
摘要: ?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo 阅读全文
posted @ 2019-03-13 16:02 zzfx 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 关键词: 类型与功能绑定、类型指定、访问控制。 类型约束的本质: 1、是否强制指定具有某些特征的类型;看类型构造器的定义本身是否对类型有约束; 2、访问控制:类型构造器的功能分为通用功能和约束功能; 通用功能任何实例类型都能访问; 约束功能,只有符合约束的构造实例能够访问。 类型与算法(功能)绑定; 阅读全文
posted @ 2019-03-13 15:22 zzfx 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 接口:what; 实现:算法;指令; 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程。 命令式编程可以与算法划等号;算法要求严格的计算逻辑和控制,是实施细节的精准描述; 命令式编程与声明式编程只是侧重点的不同。一个侧重计算控制,一个侧重逻辑描述。 命令式编程通过一系列改变程序状态的指令来 阅读全文
posted @ 2019-03-11 22:10 zzfx 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 三个关注点:1、形式;2、实现方式;3、使用方式; 一、基本形式: 形式:内部无泛型类型; 实现:只需指定类型和实现相应的功能即可; 使用:可以用在其他类型出现的任何地方; protocol Response { /// The task metrics containing the request 阅读全文
posted @ 2019-03-11 18:51 zzfx 阅读(2127) 评论(0) 推荐(0) 编辑
摘要: 高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。 阅读全文
posted @ 2019-03-11 17:04 zzfx 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据 阅读全文
posted @ 2019-03-11 16:56 zzfx 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型; 阅读全文
posted @ 2019-03-11 15:59 zzfx 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 安全,有了类型系统以后就可以实现类型安全,这时候程序就变成了一个严格的数学证明过程,编译器可以机械地验证程序某种程度的正确性,从而杜绝很多错误的发生。正面例子:Haskell、Rust反面例子:C,动态语言 抽象能力,在安全的前提下,一个强大的类型系统的标准是抽象能力,能将程序中的很多东西纳入安全的 阅读全文
posted @ 2019-03-11 15:51 zzfx 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 1、单体(数据)映射:基本操作;数据的单次映射; 2、管道流:数据的流程化处理 基础是monand类型,形式是声明式编程; Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得到唯一的终于输出。 阅读全文
posted @ 2019-03-11 15:32 zzfx 阅读(442) 评论(0) 推荐(0) 编辑
摘要: <高阶函数定义了高阶类型的处理(映射)、低阶函数处理了低阶类型的映射,高阶函数依赖于低阶函数> 高阶函数的特点: 1、定义的高阶函数本身的实现 ; 2、定义了参量函数的接口:输入、输出; 3、定义了高阶函数的功能部分对输入函数的引用或使用方式。 语义:定义高阶函数并声明混入函数的接口 本质是暴露低阶 阅读全文
posted @ 2019-03-11 11:53 zzfx 阅读(1510) 评论(0) 推荐(0) 编辑
摘要: https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/ 阅读全文
posted @ 2019-03-10 22:03 zzfx 阅读(274) 评论(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 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 对每一门编程语言的掌握都要仔细考究着门语言的类型系统。 阅读全文
posted @ 2019-03-10 12:06 zzfx 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 理论和实际的学校是一个交互向上的过程。 理论是抽象的东西,是一般的东西; 实际是具体的东西,是个例; 从理论到具体是演绎; 从具体到理论时归纳; 理论的学校用于指导实际; 具体的分析用于强化理论; 二者的学习是一个交互的过程; 没有实际支撑的理论是纸上谈兵、是空洞之物; 没有理论支撑的实际是形而下, 阅读全文
posted @ 2019-03-09 14:58 zzfx 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 为什么说swift是面向协议编程 public protocol ReactiveCompatible { /// Extended type associatedtype CompatibleType /// Reactive extensions. static var rx: Reactive 阅读全文
posted @ 2019-03-08 19:39 zzfx 阅读(917) 评论(0) 推荐(0) 编辑
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 101 下一页