D语言基础笔记_2
mixin表达式:
- mixin表达式可以把一串编译期确定的字符串转换成可执行代码。
- 由于字符串必须是编译时已知的,所以它并没有其它动态预语言运行时动态解释执行的能力(eval)。
- 特定领域嵌入式语言(DSEL),以字符串常量的形式接受DSEL语句,并使用mixin将这个字符串转变为D语言,然后编译执行。 具体实作可以参考标准库里的模块std.bitmanip。
is表达式:
所有的is表达式的计算都是在编译期间完成的,最后返回一个布尔常量。D语言会进行词法和语义的双重检测,比如is([]x[]),因为[]x[]不符合类型的命名规则会导致编译错误。
它具有以下几种形式:
- is(Type),用于检测Type这种类型是否存在。对于Type,
- is(Type1 == Type2),用于检测Type1和Type2这两种类型是否相同,这两种类型可能因为使用了别名而拥有不同的名字。
- is(Type1 : Type2),若Type1等同于Type2,或者可以隐式转换成Type2,则返回True。
- is(Type == Kind),检测Type的类型,Kind由D语言定义,包含:[struct,union,class,interface,super,enum,function,delegate,return]。
浙公网安备 33010602011771号