列表的模式匹配,捕获“...rest”元素

问题描述 投票:0回答:1

我是 Dart 新手。我想做这个:

var list = [1, 2, 3, 4];
switch (list) {
  case [var a, var b, var ...rest]:
    // use a, b, rest
  default: ...
}

它不喜欢

var ...rest
部分,这种语法不被接受。但是有什么语法可以让我捕获这个吗?

但我可以做到这一点:

  case [_, _, ...]:
    var [a, b, ...rest] = list;

但是如果解构模式可以在赋值中工作但不能在 switch 中工作,那么它看起来像是语言限制。

谢谢!!

dart pattern-matching
1个回答
0
投票

语法是:

  var list = [1, 2, 3, 4];
  switch (list) {
    case [var a, var b, ...var rest]:
      print('$a, $b and the $rest');
  }
© www.soinside.com 2019 - 2024. All rights reserved.