gpt4 book ai didi

dart - 在 Dart 中创建具有可变数量参数的函数

转载 作者:行者123 更新时间:2023-12-03 00:28:57 26 4
gpt4 key购买 nike

我正在寻找一种在 Dart 中创建具有可变数量参数的函数的方法。我知道我可以创建一个数组参数,但我宁愿不这样做,因为我正在开发一个语法简洁很重要的库。

例如,在纯 JavaScript 中,我们可以做这样的事情(借自 here ):

function superHeroes() {
for (var i = 0; i < arguments.length; i++) {
console.log("There's no stopping " + arguments[i]);
}
}

superHeroes('UberMan', 'Exceptional Woman', 'The Hunk');

但是,在 dart 中,该代码将无法运行。有没有办法在 Dart 中做同样的事情?如果没有,这是否在路线图上?

最佳答案

您现在不能这样做。

我真的不知道 varargs 是否会回来 - 它们以前就在那里,但是 have been removed .

但是可以使用 Emulating functions 来模拟varargs 。请参阅下面的代码片段。

typedef OnCall = dynamic Function(List arguments);

class VarargsFunction {
VarargsFunction(this._onCall);

final OnCall _onCall;

noSuchMethod(Invocation invocation) {
if (!invocation.isMethod || invocation.namedArguments.isNotEmpty)
super.noSuchMethod(invocation);
final arguments = invocation.positionalArguments;
return _onCall(arguments);
}
}

main() {
final superHeroes = VarargsFunction((arguments) {
for (final superHero in arguments) {
print("There's no stopping ${superHero}");
}
}) as dynamic;
superHeroes('UberMan', 'Exceptional Woman', 'The Hunk');
}

关于dart - 在 Dart 中创建具有可变数量参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com