https://dlang.org/spec/expression.html说:“不允许使用逗号表达式的结果”。但是以下D程序使用GDC 8.2.0编译时没有错误:
void main() {
int x, y;
y = x++, y++;
}
解释差异。是否允许?
最佳答案
最近禁止更改规格以禁止使用逗号表达式的结果。
出于技术和政治原因,GDC基于引用编译器的较旧版本,而该引用编译器已有多年历史。 D的更改速度比Java快,因此GDC中不存在此限制。
请注意,D语言版本并不严格与GNU编译器集合的其余部分绑定(bind)。要查看语言版本,可以使用测试程序:
import std.compiler;
import std.stdio;
void main()
{
writeln(version_major, ".", version_minor);
}
关于compiler-errors - D中逗号表达式的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53949395/