会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
躺柒
博客园
首页
新随笔
联系
订阅
管理
随笔 - 788
文章 - 0
评论 - 17
阅读 -
49126
读编程与类型系统笔记09_泛型数据结构
合集 - 读编程与类型系统(12)
1.
编程与类型系统读后总结与感想
2023-01-25
2.
读编程与类型系统笔记01_类型简介
2023-01-08
3.
读编程与类型系统笔记02_基本类型
2023-01-09
4.
读编程与类型系统笔记03_组合
2023-01-10
5.
读编程与类型系统笔记04_类型安全
2023-01-11
6.
读编程与类型系统笔记05_函数类型
2023-01-12
7.
读编程与类型系统笔记06_函数类型的高级应用
2023-01-13
8.
读编程与类型系统笔记07_子类型
2023-01-14
9.
读编程与类型系统笔记08_面向对象变成的元素
2023-01-15
10.
读编程与类型系统笔记09_泛型数据结构
2023-01-17
11.
读编程与类型系统笔记10_泛型算法和迭代器
2023-01-18
12.
读编程与类型系统笔记11_高级类型及其他
2023-01-19
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.
为遍历数据结构提供了公共接口
8.2.
把数据结构和算法连接起来的“胶水”
8.3.
迭代器模式十分有用,所以得到了原生支持
8.3.1.
Java中的等效接口也叫作Iterator
8.3.2.
在C#中,等效的接口是IEnumerator
8.4.
在定义数据结构时,应该确保它实现了Iterable
8.5.
Iterator
代表一个迭代器
8.6.
Iterable
代表可迭代的东西
8.7.
使用生成器可实现迭代器
8.8.
并非必须是有限的,它们可以无限产生值
9.
生成器
9.1.
是一个可恢复的函数,使用yield语句返回控制权,并且当再次被调用时,会从上一次离开的状态恢复执行
9.2.
生成器返回一个IterableIterator
,所以我们可以直接在for...of循环中使用它们,或者用它们来实现一个数据结构的Iterable
接口
9.2.1.
大部分主流编程语言都有一个等效的特殊类型,用来支持一个能够遍历元素的for循环
9.3.
在实现遍历逻辑时,考虑使用yield
9.3.1.
它通常可以让代码变得更加整洁
9.3.2.
Java中没有内置的yield语句
9.3.3.
C#支持yield语句
10.
数据流
10.1.
无限数据流的例子
10.1.1.
从键盘读取字符
10.1.2.
从网络连接获取数据
10.1.3.
收集传感器数据
10.2.
把函数链接成处理管道,在可能无限的数据流上运行它们
11.
处理管道
11.1.
通过使用接受和返回迭代器的函数,能够构建处理管道
11.1.1.
一些函数,它们接受一个迭代器作为实参,进行一些处理,然后返回一个迭代器
11.1.2.
这种函数可以链接起来,在收到数据时处理数据
11.2.
反应式编程的基础
11.3.
迭代器是关键,因为它们使我们能够逐个处理值
11.4.
是延迟计算的
合集:
读编程与类型系统
好文要顶
关注我
收藏该文
微信分享
躺柒
粉丝 -
50
关注 -
0
+加关注
0
0
升级成为会员
«
上一篇:
C#代码整洁之道读后总结与感想
»
下一篇:
读编程与类型系统笔记10_泛型算法和迭代器
posted @
2023-01-17 09:08
躺柒
阅读(
69
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
登录后才能查看或发表评论,立即
登录
或者
逛逛
博客园首页
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
相关博文:
·
读编程与类型系统笔记10_泛型算法和迭代器
·
读编程与类型系统笔记02_基本类型
·
10.泛型
·
第13章泛型
·
让泛型的思维扎根在脑海——深刻理解泛型
阅读排行:
·
【.NET】调用本地 Deepseek 模型
·
CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
·
DeepSeek “源神”启动!「GitHub 热点速览」
·
我与微信审核的“相爱相杀”看个人小程序副业
·
Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
公告
昵称:
躺柒
园龄:
2年1个月
粉丝:
50
关注:
0
+加关注
<
2025年2月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
合集
学信息系统项目管理师第4版(35)
学系统集成项目管理工程师(中项)(43)
读高性能MySQL(第4版)(21)
读发布!设计与部署稳定的分布式系统(第2版)(34)
随笔及总结(26)
读改变未来的九大算法(10)
读数据压缩入门(11)
读C#代码整洁之道(8)
读编程与类型系统(12)
读函数式编程思维(6)
读Java8函数式编程(9)
读Java实战(第二版)(20)
读Java性能权威指南(第2版)(31)
读SQL进阶教程(17)
选读SQL经典实例(23)
读SQL学习指南(第3版)(13)
读图数据库实战(11)
读程序员的制胜技(15)
读像火箭科学家一样思考(16)
读程序员的README(19)
读算法霸权(13)
读元宇宙改变一切(14)
读AI3.0(10)
读千脑智能(13)
读十堂极简人工智能课(9)
读人工不智能:计算机如何误解世界(10)
读算法的陷阱:超级平台、算法垄断与场景欺骗(20)
读所罗门的密码(21)
读天才与算法:人脑与AI的数学思维(26)
读人工智能时代与人类未来(19)
读AI未来进行式(12)
读AI新生:破解人机共存密码(18)
读人工智能全传(16)
读写给大家的AI极简史(7)
读零信任网络:在不可信网络中构建安全系统(21)
读软件开发安全之道:概念、设计与实施(17)
读软件设计的要素(7)
读构建可扩展分布式系统:方法与实践(16)
读数据湖仓(9)
读数据工程之道:设计和构建健壮的数据系统(34)
读数据质量管理:数据可靠性与数据质量问题解决之道(20)
读数据保护:工作负载的可恢复性(31)
读量子霸权(18)
读算法简史:从美索不达米亚到人工智能时代(15)
读当我点击时,算法在想什么?(7)
读DAMA数据管理知识体系指南(4)
更多
随笔档案
2025年2月(25)
2025年1月(31)
2024年12月(31)
2024年11月(30)
2024年10月(31)
2024年9月(30)
2024年8月(31)
2024年7月(31)
2024年6月(30)
2024年5月(31)
2024年4月(30)
2024年3月(31)
2024年2月(29)
2024年1月(31)
2023年12月(31)
2023年11月(30)
2023年10月(31)
2023年9月(30)
2023年8月(31)
2023年7月(31)
2023年6月(30)
2023年5月(31)
2023年4月(31)
2023年3月(36)
2023年2月(28)
2023年1月(26)
阅读排行榜
1. C#代码整洁之道读后总结与感想(599)
2. 选读SQL经典实例笔记01_检索和排序(369)
3. 读C#代码整洁之道笔记01_C#的编码标准和原则(311)
4. 读C#代码整洁之道笔记04_重构C#代码识别代码坏味道(309)
5. 学信息系统项目管理师第4版系列02_法律法规(268)
评论排行榜
1. 2023年1月随笔(11)
2. 2023年10月随笔之婚宴趣事多(2)
3. 读高性能MySQL(第4版)笔记12_查询性能优化(下)(2)
4. 读Java性能权威指南(第2版)笔记18_垃圾回收E(2)
推荐排行榜
1. 读高性能MySQL(第4版)笔记01_MySQL架构(上)(2)
2. 选读SQL经典实例笔记01_检索和排序(2)
3. 读软件设计的要素01概念(1)
4. 读AI未来进行式笔记01深度学习(1)
5. 读所罗门的密码笔记01_当人类遇见机器(1)
最新评论
1. Re:2023年10月随笔之婚宴趣事多
@gz4621 wondershare mindmaster...
--躺柒
2. Re:2023年10月随笔之婚宴趣事多
大神 思维导图用的什么软件制作的?
--gz4621
3. Re:读高性能MySQL(第4版)笔记12_查询性能优化(下)
@东围居士 建议读新版。...
--躺柒
4. Re:读高性能MySQL(第4版)笔记12_查询性能优化(下)
第4版相比第3版好像缩减了好多内容?楼主推荐第3版还是第4版
--东围居士
5. Re:读Java性能权威指南(第2版)笔记18_垃圾回收E
@屠炉 没有用第三方工具,手动的。 有几个平台直接支持markdown导入,只是要调整一下图片上传即可。...
--躺柒
点击右上角即可分享
支持DeepSeek的编程助手
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库