D中,目前有几种不同的方式可以引用类型
1)
按名称.
int x;
2)
按别名.
alias T = int;
T x;
3)
按模板参数.
template foo(T) {T x;
}
4)
按typeof
表达式.
typeof(42) x;
5)
按__traits
表达式.
struct Node {int data;__traits(parent, data)* next;
}
6)
按串插件.
mixin("int") x;
一般,类型
是不变的,禁止这样:
alias T = int;T x = 42;T = string; T s = "hello";
因为会更难阅读/更改
.但有时可能会很方便
.
此时类型函数
就有用了.提供T
可更改的环境
.
递归的问题是性能很差
,性能为O(N)
.而类型函数
及...
可降为O(1)
.