d的betterC很强大
//!dmd -betterC %
//编译.创建了类的静态`缓冲区`.
__gshared Foo[] foos = () {
Foo[] ret;
ret.length = 10;
foreach(i, ref foo; ret) {
foo = new Foo(i);
}//用CTFE的全局数组初化,来绕过`新`,编译时运行的.
return ret;
}();//类似js的闭包,以Foo
//内联调用匿名函数
extern(C++) class Foo {//用C++版类
//用`extern(C++)`绕过`类`限制
size_t x;
this(size_t x) {
this.x = x;
}
}
extern(C) void main() {
import core.stdc.stdio;
foreach(foo; foos) {
printf("%d\n", foo.x);
}
}
浙公网安备 33010602011771号