D中的'是'陈述是什么?

Jer*_*oen 6 d traits

std.traits模块内部,我可以找到类似于的行:

assert(is(Unqual!(int) == int));
Run Code Online (Sandbox Code Playgroud)

我知道Unqual删除任何类型修饰符,如不可变,但'是'做什么?它与if语句有什么不同,何时应该使用?

Vla*_*eev 8

is(Unqual!(int) == int)是表达,而不是陈述.您发布的行不存在std.traits.

我假设你的意思是以下几行:

static assert(is(Unqual!int == int));
Run Code Online (Sandbox Code Playgroud)

请参阅IsExpression的文档.


Rob*_*bik 5

is是一个表达式,允许例如检查类型是否相等,1类型是否是另一个类型或T类/枚举/结构等.

您发布的代码检查指定的类型是否没有任何修饰符.

有关IsExpression的详细信息,请参阅D语言文档.