1
我有一個枚舉抽象類的類型:檢查枚舉類
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'或'baz'聲明瞭你想要使用的新屬性或方法。 – gdejohn
還有另一個更有趣的用例:您想將選項集縮小到實例的子集,例如,類型如下:'\ Ioption1 | \ Ioption4 | \ Ioption5'。 –