【发布时间】:2014-09-14 12:51:06
【问题描述】:
在一个带有可选参数的函数中,我想打印所有传入的参数,不仅是值,还有每个参数的标识符。例如,下面是一个带有可选命名参数的函数。我使用地图实例打印出 arg 名称及其值,这就是我所需要的。
Map temp = new Map();
argumentTest({String a, String b, String c: "DDD"}){
if (a != null) {
temp.addAll({"a":a});
}
if (b != null) {
temp.addAll({"b":b});
}
if (c != null) {
temp.addAll({"c":c});
}
}
void main() {
argumentTest(a:"AAA");
print('$temp'); //{a: AAA, c: DDD}
}
虽然丑陋,但它有效。但是,有什么看起来像的吗?
Map temp = new Map();
argumentTest({String a, String b, String c: "DDD"}){
arguments.forEach((arg) => temp.addAll({"arg": arg}));
}
void main() {
argumentTest(a:"AAA");
print('$temp'); //of course, not working.
}
永远感谢你们。
【问题讨论】:
-
你可以使用反射库。
-
实际上
dart:mirrors但我从未见过使用仅镜像字段和方法/函数来访问局部变量的方法。无法知道传递了哪些参数。您只能检查参数值是否为null或您指定的默认值,但该值也可能已由调用方传递。
标签: arguments dart optional-parameters