Dart 3有两种用于匹配类型的语法:
switch(myObject) { case TypeA(): // With parameter destructuring case TypeB _: // Without parameter destructuring }
如果不需要进一步重组,应该使用哪一种?一个比另一个更有性能吗?
xxe27gdn1#
我推荐使用case TypeB _:作为编写不做其他任何事情的类型测试的通用方法。原因是它允许任何类型语法,其中TypeA()只允许类型 names,所以如果你需要匹配一个函数,你可以直接写为:
case TypeB _:
TypeA()
case void Function() _: .... // Works
你也可以对任何类型使用(),你只需要一个helper类型别名,这样类型就有正确的格式:
()
typedef typeof<T> = T; // ... case typeof<void Function()>(): ... // Works too.
1条答案
按热度按时间xxe27gdn1#
我推荐使用
case TypeB _:
作为编写不做其他任何事情的类型测试的通用方法。原因是它允许任何类型语法,其中
TypeA()
只允许类型 names,所以如果你需要匹配一个函数,你可以直接写为:你也可以对任何类型使用
()
,你只需要一个helper类型别名,这样类型就有正确的格式: