Dart中的打包参数 [英] Packing/Unpacking arguments in Dart

查看:55
本文介绍了Dart中的打包参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Dart中是否有一种方法可以打包/解压缩函数中的参数(例如Python)?

Is there a way in Dart to pack/unpack arguments in a function (like Python for example) ?

对于包装示例,可以声明这样的函数:

For packing example, being able to declare a function like this :

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

关于打开包装,可以执行以下操作:

As for unpacking, being able to do something like that :

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

推荐答案

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

This is not currently supported, but you can very easily pack yourself, by passing a list & 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中的打包参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆