d的优势
原文在此
作者:SealabJaster
.
统调/动态生成代码/内省/简洁调用函数/传递λ至模板(内联且不牺牲可读性)
等,可用来创建
你想要的任何东西
.
在D
中,你没有限制
,如属性
可自然表达:
@Command("command", "非常复杂命令")
struct ComplexCommand
{
@CommandArgGroup("Debug", "调试相关参数")
{//命令参数组
@CommandNamedArg("verbose|v", "允许详细")
Nullable!bool verbose;
@CommandNamedArg("log|l", "指定日志文件")
Nullable!string log;
}
}
上面代码,在C#
中可行,但是是在运行时
.而C++
则要特殊法门
.
另一个是区间
,这是D
主页上面的:
import std.stdio, std.array, std.algorithm;
void main()
{
stdin
.byLineCopy
.array
.sort!((a, b) => a > b) //降序
.each!writeln;
}
或,设计界面
时,大量描述性细节,我可自动在定义界面
文件中允许用新控件
:
@DataBinding
struct MyControlBinding
{
@BindingFor("stringVal")
string someString;
@BindingFor("intVal")
@Name("number")
int someInt;
}
@UsesBinding!MyControlBinding
class MyControl : UIBase
{
public string stringVal;
public int intVal;
}
界面文件
:
UI:view {
name "自定义界面"
MyControl {
someString "Hey"
number 69
}
}
还有pegged/vibe-d的diet模板
,只用标准工具
就可用的.
一旦学会内省/生成代码
,就拥有了无限可能
.
D
相对其他语言最强的是D
的表达与建模能力
.这些方面即使动态语言也不能优雅
的干活.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现