1

e ファイルでは、次のように言うことは完全に合法です。

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 の (簡略化された) 構文はprint <exp>. 列挙型リテラルは式ではありませんか?

4

1 に答える 1

1

私はそれを理解しました。VAL2 自体は、定数としては意味がありません。タイプ名で修飾する必要があります。それを行う適切な方法は次のとおりです。

print some_type_e'VAL2;
于 2014-07-03T15:25:27.447 に答える