dart - Dart 中的打包/解包参数

标签 dart

这个问题在这里已经有了答案:





Creating function with variable number of arguments or parameters in Dart

(6 个回答)


4年前关闭。




Dart 有没有办法在函数中打包/解包参数(例如 Python)?

对于 包装例如,能够声明这样的函数:

packArguments(*listOfArguments, **mapOfArguments) {
    listOfArguments.forEach((arg) => print(arg));
    mapOfArguments.forEach((key, val) => print("$key => $val"));
}

然后这样做:
packArguments("I", "Put", "whatever", "I", "want, arg1: "A", arg2: 1);

会显示:
I
Put
whatever
I
want
arg1 => A
arg2 => 1

至于开箱 ,能够做这样的事情:
functionWithLotOfArgument(a, b, c, d, e, {aa, bb = null, cc = null}) {
  // do stuff
}
var argList = [1, 2, 3, 4, 5];
var argMap = {"aa": "haha", bb: "baby"};

functionWithLotOfArgument(*argList, **argMap);

相关问题https://github.com/dart-lang/sdk/issues/29087

最佳答案

当前不支持此功能,但您可以通过传递列表和 map 轻松打包自己:

void packArguments(List listOfArguments, Map mapOfArguments) {
    listOfArguments.forEach((arg) => print(arg));
    mapOfArguments.forEach((key, val) => print("$key => $val"));
}

void main() {
  packArguments(['a', 3], {'arg1': 'a', 'arg2': 5});
}

https://dartpad.dartlang.org/98ed3a3b07a2cca049cde69ca50ca269

关于dart - Dart 中的打包/解包参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831703/

相关文章:

stream - 从Dart中的元素清除流订阅

flutter - Android Studio - 'constants.dart' 文件变成 .txt 文件

sql - 元素类型 'Iterable<Widget>' 无法分配给列表类型 'Widget'

Flutter/Dart - getter 'path' 被调用为 null。接收器: null Tried calling: path

flutter - Flutter:如何调整小部件以避免android的底部导航栏

flutter - 检查文本小部件是否有样式

dart - @override Dart 代码

dart - 错误:==中的无效替代

dart - 使用使用 DartSON 的库时出错

flutter - (Flutter)TextFormField 在焦点上更改 labelColor