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