在电子文件中,说:
是完全合法的print 5;
但与此同时,以下事情不起作用:
type some_type_e : [ VAL1, VAL2 ];
print VAL2; // issues a compile error
解析器期望VAL2是变量名,不会将其解释为常量。
与此同时,这是允许的:
var some_int : int = 10;
if some_int != 5 {
print "Some int not 5"
};
var some_enum : some_type_e = VAL1;
if some_enum != VAL2 {
print "Some enum not VAL2";
};
在这种情况下,VAL2被解释为常数。
打印的(简化)语法为print <exp>
。枚举文字不是表达式吗?
答案 0 :(得分:1)
我已经弄清楚了。 VAL2本身作为一个常数是没有意义的。必须使用类型名称进行限定。正确的方法是:
print some_type_e'VAL2;