将函数/方法分配给Dart中的变量
Dart是否支持变量函数/方法的概念?因此,通过存储在变量中的方法名调用方法 例如,在PHP中,这不仅适用于方法:将函数/方法分配给Dart中的变量,dart,Dart,Dart是否支持变量函数/方法的概念?因此,通过存储在变量中的方法名调用方法 例如,在PHP中,这不仅适用于方法: //使用函数。。。 函数foo() { 呼应“奔跑的食物…”; } $function='foo'; $function(); //有课。。。 公共静态函数工厂($view) { $class='View'.ucfirst($View); 返回新的$class(); } 我没有在语言教程或API中找到它。还有其他方法可以这样做吗 提前感谢。要将函数名存储在变量中并稍后调用它,您必
//使用函数。。。
函数foo()
{
呼应“奔跑的食物…”;
}
$function='foo';
$function();
//有课。。。
公共静态函数工厂($view)
{
$class='View'.ucfirst($View);
返回新的$class();
}
我没有在语言教程或API中找到它。还有其他方法可以这样做吗
提前感谢。要将函数名存储在变量中并稍后调用它,您必须等待反射到达Dart(或带有)。但是,您可以直接将函数存储在变量中,如JavaScript中
main(){
变量f=(字符串s)=>打印;
f(“你好世界”);
}
甚至可以将它们内联,如果您正在进行递归,这会很方便:
main(){
g(国际一级){
如果(i>0){
打印($i大于零);
g(i-1);
}否则{
打印(“零或负片”);
}
}
g(10);
}
然后可以将存储的函数传递给其他函数
main(){
var函数;
函数=(字符串)=>打印;
嫁妆(功能);
}
销钉(f(串s)){
f(“你好世界”);
}
< /代码> 我可能不是最好的解释者,但是你可以认为这个例子有一个更大范围的函数赋值给变量,也可以使用一个闭包函数作为函数的一个参数。
void main() {
// a closure function assigned to a variable.
var fun = (int) => (int * 2);
// a variable which is assigned with the function which is written below
var newFuncResult = newFunc(9, fun);
print(x); // Output: 27
}
//Below is a function with two parameter (1st one as int) (2nd as a closure function)
int newFunc(int a, fun) {
int x = a;
int y = fun(x);
return x + y;
}
谢谢你的回答。我想这将有助于解决我的问题。没有考虑Javascript在变量中存储函数的方式……您使用int
作为参数名?小心。