gpt4 book ai didi

dart - Dart 函数的默认返回值是多少?

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

即使我故意删除了“返回”命令,下面的函数也能工作:

main() {
add(i) => i + 2; //I intentionally deleted 'return'
print(add(3)); //5
}
但是,在我故意删除“返回”命令后,下面的功能不起作用。
main() {
makeAdder(num addBy) {
return (num i) {
addBy + i; //I intentionally deleted 'return'
};
}

var add2 = makeAdder(2);
print(add2(3) ); //expected 5, but null.
}
编辑以澄清我的问题。
上面后一个函数中的最后一句话,add2(3) 不返回值(我期望是 5),而只是返回空值。
我的问题是为什么后一个函数的 'addBy + i' 不返回与第一个函数的 'add(i) => i + 2' 返回 'i + 2' 的事实相反。
再次编辑 .
答案是事实上 '=>' 是 {return },而不仅仅是 {}。
main() {
makeAdder(num addBy) => (num i) { return addBy + i; };


var add2 = makeAdder(2);
print(add2(3) ); // 5
}
即使下面的代码也可以作为 '=>' 中的 'return' 命令使用。
main() {
makeAdder(num addBy) => (num i) => addBy + i; ;


var add2 = makeAdder(2);
print(add2(3) ); //5
}

最佳答案

在 Dart 中,每个函数都没有显式 return someValue;返回 null ;

The null object does not have a method 'call'.


makeAdder ( add2 ) 没有 return返回 nullnull(3)导致异常。

关于dart - Dart 函数的默认返回值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25737221/

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