学习d未来笔记.

设计目标:
更易写泛型
健壮性
编程准则
方便大规模
并行编程

方法:
无问题
暗角落
工程理念(转换,构造限制,宏中非混杂)

函数参数 定义=数据定义
枚查找规则 =函数指针查找
宏参数与模板参数规则一致
用户定义转换与内置一致

函数&模板重载
void foo(int i)
void foo(T)(T*t)
两者平等,相互重载.
理念:泛型与特殊无缝合作,函数与模板平等.在宏中不能重载函数.

统调:
添加成员函数到库类麻烦
类设计者,可设计最小必要函数,其他人定义自由函数.
类似我就是库作者,
这样的东西,都可以表现得好像是有成员函数,帮助写泛型
非成员函数,改进包装.
类中的封装要尽可能的小.该你才是你.
导入函数时,禁止不同模块的函数名相同,此时,可能有警告
不抛表明函数绝对不抛异常(静态检查,),表明,此为异常安全函数.允许优化异常帧,

纯函数:
不读非常全局数据.不写全局数据.不修改参数可访问的数据.
可能修改自己的参数或自己栈变量.
函数结果,仅依赖参数的值.
优点:可消除公共子表达式.
可记忆(缓存),可重排,可制成表格,编译器可安排,可自动并行,

允许为对象创建引用计数模板包装器
复制值对象:按位,op复制(增加引用计数).
隐式转换器op隐式转换到``op隐式从转换,调整调用传统
数组可扩展,切片不能.
接口类似c++的概念.构/类从接口继承,则必须都实现.
但类/构并不能转换成接口.

不变:
模块性,并行化.
静态参数,类似常数模板参数.简化模板写法.
参数从左至右求值.不折腾.
重载时,优先静态参数(允许常折叠优化,).

枚举值,使用时,要加上枚举的名字.即全名.
return 存储类.可优化一次.主要是返回参数引用(dip)
模板函数不能为虚.
别名本,允许把成员字段,导入结构的名字空间.

终 开关(…):
两种用途:
确保对枚中的每一个值都有一个,帮助是否有漏写什么的.(X&3),都是值.
在加枚成员时,很有帮助.
默认标签,则自动有终的意思.即每个值都考虑了.

编译时反射.
运行时反射在库中通过编译时反射实现.
自动接口,解序/编序,并行层次

ast宏.操纵抽象树.文本宏
静每一.

函数式编程:易于理解,健壮性代码
合约编程:有些只能在运行时检查,合约用来断定数据是正确的.不是用来验证用户输入的.高级优化器用来生成更好代码.
工业质量.(不妥协性能,可扩展,管理工具)
良好性能:
直接映射至内存,(基本类型是典型的本地机器类型,simd)
用现代优化后端(dmd,gdc,ldc)
可扩展:
单独编译,强封装(无全局名字空间,反劫持,伏地魔),高速编译
管理工具(文档生成,单元测试,代码涵盖)

posted @   zjh6  阅读(12)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示