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();
}
Run Code Online (Sandbox Code Playgroud)
我没有在语言导览或API中找到它.还有其他方法可以做这样的事吗?
提前致谢.
要将函数的名称存储在变量中并稍后调用它,您必须等到反射到达Dart(或使用noSuchMethod 获得创意).但是,您可以将函数直接存储在JavaScript中的变量中
main() {
var f = (String s) => print(s);
f("hello world");
}
Run Code Online (Sandbox Code Playgroud)
甚至可以内联它们,如果你正在做的话会派上用场:
main() {
g(int i) {
if(i > 0) {
print("$i is larger than zero");
g(i-1);
} else {
print("zero or negative");
}
}
g(10);
}
Run Code Online (Sandbox Code Playgroud)
然后,存储的函数可以传递给其他函数
main() {
var function;
function = (String s) => print(s);
doWork(function);
}
doWork(f(String s)) {
f("hello world");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |