检查枚举的类型 class
Check the type of an enumerated class
我有一个枚举摘要class:
shared abstract class Foo() of bar|baz {}
还有一个函数试图检查 Foo
是否不是 bar
:
shared void test(Foo foo) {
if (!is bar foo) {
}
}
我收到错误
incorrect syntax: no viable alternative at token 'bar'
因为bar
是一个枚举实例,它只是一个值,不是类型。但它确实有比 Foo
更具体的类型,您可以通过在它前面加上 \I
.
来表示
void test(Foo foo) {
if (!is \Ibar foo) {
print("Not bar!");
}
}
@gdejohn 的回答是正确的,但我还要指出,通常 直接引用枚举实例的类型没有多大意义。通常你会这样写代码:
void test(Foo foo) {
if (foo!=bar) {
print("Not bar!");
}
}
我有一个枚举摘要class:
shared abstract class Foo() of bar|baz {}
还有一个函数试图检查 Foo
是否不是 bar
:
shared void test(Foo foo) {
if (!is bar foo) {
}
}
我收到错误
incorrect syntax: no viable alternative at token 'bar'
因为bar
是一个枚举实例,它只是一个值,不是类型。但它确实有比 Foo
更具体的类型,您可以通过在它前面加上 \I
.
void test(Foo foo) {
if (!is \Ibar foo) {
print("Not bar!");
}
}
@gdejohn 的回答是正确的,但我还要指出,通常 直接引用枚举实例的类型没有多大意义。通常你会这样写代码:
void test(Foo foo) {
if (foo!=bar) {
print("Not bar!");
}
}