在Dart 3中匹配类型的推荐语法是什么?

xytpbqjk  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(99)

Dart 3有两种用于匹配类型的语法:

switch(myObject) {
  case TypeA(): // With parameter destructuring
  case TypeB _: // Without parameter destructuring
}

如果不需要进一步重组,应该使用哪一种?一个比另一个更有性能吗?

xxe27gdn

xxe27gdn1#

我推荐使用case TypeB _:作为编写不做其他任何事情的类型测试的通用方法。
原因是它允许任何类型语法,其中TypeA()只允许类型 names,所以如果你需要匹配一个函数,你可以直接写为:

case void Function() _: .... // Works

你也可以对任何类型使用(),你只需要一个helper类型别名,这样类型就有正确的格式:

typedef typeof<T> = T;
// ...
  case typeof<void Function()>(): ... // Works too.

相关问题