
1. 恒等函数
1.1. 在代数中,恒等函数指的是函数f(x) = x
1.2. 恒等逻辑与getNumbers()和assembleWidgets()的问题域解耦,因为恒等逻辑和问题域是正交的,或者说是独立的
2. 类型参数
2.1. 将不同函数的区别,即它们的实参类型参数化
2.2. 一个泛型名称的标识符,用作客户端在创建泛型实例时指定的具体类型的占位符
3. 可选类型
3.1. 包含某个类型T的值,或者不包含任何内容
3.2. Optional实现
3.3. 当处理没有赋值的情况时,使用的逻辑与该值的实际类型并没有关系
4. 泛型函数 泛型类
4.1. 泛型函数(value:T) => T,它的类型参数是T
4.2. 当为T指定了实际类型时,就创建了具体函数
5. 泛型类型
5.1. 参数化一个或多个类型的泛型函数、类、接口等
5.2. 允许我们编写能够使用不同类型的通用代码,从而实现高度的代码重用
5.2.1. 让代码的组件化程度更高
5.2.2. 创建独立的、可重用的组件
5.2.3. 使用泛型来避免复制代码
5.2.3.1. 复制从来不是一个好的选择
5.3. Optional类型
5.3.1. 一个简单但是强大的泛型类型
6. 数据结构
6.1. 数据自身
6.2. 数据的形状
6.2.1. 二叉树中,以分层的方式布局数据,每个元素最多有两个子元素
6.2.2. 在链表中,数据是顺序布局的,一个元素在前一个元素的后面
6.3. 一组保留形状的操作
6.3.1. 用来添加或移除元素
6.4. 数据结构把形状赋予数据,而并不需要知道这些数据是什么, 使这些结构成为泛型,就允许为各种值重用形状,从而大大减少需要编写的代码量
6.5. 两个关注点
6.5.1. 数据
6.5.1.1. 数据的类型
6.5.1.2. 数据结构的实例保存的实际值
6.5.2. 数据的形状和保留形状的操作
6.5.3. 解耦关注点
7. 泛型数据结构
7.1. 如果能够从库中选择泛型数据结构,就应该使用库中的泛型数据结构
7.2. 处理数据的布局、形状和任何保留形状的操作
7.3. 数据布局的职责交给独立于任何实际数据内容的泛型数据结构
7.4. 与数据是什么没有关系
7.5. 不能解决全部问题
7.5.1. 仍然需要遍历它们
7.6. 对于分离独立的关注点很有用
8. 迭代器
8.1. 能够用来遍历数据结构的一个对象
8.1.1. 遍历策略和数据结构之间并不需要是一一对应的关系
8.1.2. 提供了一个标准接口,将数据结构的实际形状对客户端隐藏起来
8.1.2.1. 为遍历数据结构提供了公共接口
4556



被折叠的 条评论
为什么被折叠?



