D语言基础笔记_2

mixin表达式:

  1. mixin表达式可以把一串编译期确定的字符串转换成可执行代码。
  2. 由于字符串必须是编译时已知的,所以它并没有其它动态预语言运行时动态解释执行的能力(eval)。
  3. 特定领域嵌入式语言(DSEL),以字符串常量的形式接受DSEL语句,并使用mixin将这个字符串转变为D语言,然后编译执行。 具体实作可以参考标准库里的模块std.bitmanip。

is表达式:

所有的is表达式的计算都是在编译期间完成的,最后返回一个布尔常量。D语言会进行词法和语义的双重检测,比如is([]x[]),因为[]x[]不符合类型的命名规则会导致编译错误。
它具有以下几种形式:

  1. is(Type),用于检测Type这种类型是否存在。对于Type,
  2. is(Type1 == Type2),用于检测Type1和Type2这两种类型是否相同,这两种类型可能因为使用了别名而拥有不同的名字。
  3. is(Type1 : Type2),若Type1等同于Type2,或者可以隐式转换成Type2,则返回True。
  4. is(Type == Kind),检测Type的类型,Kind由D语言定义,包含:[struct,union,class,interface,super,enum,function,delegate,return]。

posted on 2014-09-22 23:43  rifle1206  阅读(212)  评论(0)    收藏  举报

导航