我是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 中工作,那么它看起来就像是语言限制.

谢谢!!

推荐答案

语法为:

  var list = [1, 2, 3, 4];
  switch (list) {
    case [var a, var b, ...var rest]:
      print('$a, $b and the $rest'); // 1, 2 and the [3, 4]
  }

Dart相关问答推荐

如何在将构造函数参数赋给最终变量和传递给超级构造函数之前操作它?

Dart StreamController().stream 等于 == 但不相同

如何在 Dart 2.17+ 中处理future 的枚举值

flutter.io (dart) - 将填充设置为设备宽度的百分比?

Flutter中TextFieldForm中的字母间距

在 Dart 的 Cloud Firestore 中添加文档后如何获取文档 ID

跳过 JavaScript 直接进入 Dart

Flutter - 如何自动启用 AnimatedOpacity?

如何在 GridView (Flutter) 中进行分页

Flutter Text 小部件中的 StrutStyle 是什么

未定义命名参数child.在 Center() 构造函数中

将Dart嵌入到应用程序中

如何将整数中的ascii值转换为Flutter中的等效字符?

Dart 中 http 和 HttpClient 的区别

有可用的 Dart VM 吗?

Dart:你如何让 Future 等待 Stream?

dart 是否支持运算符重载

启用空安全时,默认的List构造函数不可用.try 使用列表文字,List.filled或List.generate

将`_`(即下划线)作为唯一参数传递给 Dart 语言函数是什么意思?

有没有办法在 Dart 中通过引用传递原始参数?