gpt4 book ai didi

dart - 在 Dart 中将函数/方法分配给变量

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

Dart 支持变量函数/方法的概念吗?因此,可以通过存储在变量中的名称来调用方法。

例如,在 PHP 中,这不仅可以针对方法完成:

// With functions...
function foo()
{
echo 'Running foo...';
}

$function = 'foo';
$function();

// With classes...
public static function factory($view)
{
$class = 'View_' . ucfirst($view);
return new $class();
}

我在语言之旅或API中没有找到它。还有其他方法可以做这样的事情吗?

最佳答案

要将函数的名称存储在变量中并稍后调用它,您必须等到反射到达 Dart(或 get creativenoSuchMethod )。但是,您可以像 JavaScript 一样将函数直接存储在变量中

main() {
var f = (String s) => print(s);
f("hello world");
}

甚至内联它们,如果你正在进行递归,这会派上用场:

main() {
g(int i) {
if(i > 0) {
print("$i is larger than zero");
g(i-1);
} else {
print("zero or negative");
}
}
g(10);
}

存储的函数可以传递给其他函数

main() {
var function;
function = (String s) => print(s);
doWork(function);
}

doWork(f(String s)) {
f("hello world");
}

关于dart - 在 Dart 中将函数/方法分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10305195/

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