d的opApply只是个闭包
import std.stdio;
struct A {
static int[string] impl;
static this() {
impl = [
"a": 1,
"b": 2,
];
}
int opApply(scope int delegate(string a, int b) dg) {//实际执行的是这个函数.
foreach (k, v; impl) {
auto r = dg(k, v);//插入闭包.
if (r) return r;
}
return 0;
}
}
void main() {
A a;
foreach (k, v; a) {
writefln("%s -> %s", k, v);
}
}
d
的opApply
只是官方
的一个稍微
高阶的闭包
罢了.每一
的{}
作为闭包内容,相当于策略类
插入到opApply
的基础类
里面!是不是策略类
到处都有?
应该这样理解,类
是插件
.把类
当作{}
块.插入基块
中.而不是函数
作插件
,函数
作插件没有类
作插件方便,舒服!
而真正的函数
与类
的公共基块应该是{}
块.以{}
为基块
,当然编译
过程中就是这样处理的.{}
为基块.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现