gpt4 book ai didi

flutter - 不带括号和带括号调用函数有什么区别

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

在 onPressed 或 Ontap 上调用不带括号的函数和带括号的函数有什么区别?

我只知道不能在 onPressed 上使用括号调用 void 函数。

floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
_incrementCounter有 void 返回类型
void _incrementCounter() {
setState(() {
_counter++;
});
}

但我没有找到任何适当的文件。

最佳答案

_incrementCounter 里面的 onPressed 是一个函数引用,基本上就是说它不是立即执行的,而是在用户点击特定的小部件后执行。(回调)
_incrementCounter() 是一个函数调用,它会立即执行。

因此,在 onPressed 中,您可以传递函数引用或充当回调的匿名函数。

floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),

或者
floatingActionButton: FloatingActionButton(
onPressed: () {
// Add your onPressed code here!
},
tooltip: 'Increment',
child: Icon(Icons.add),
),

这不是特定于 dart 的东西,它也在 javascript 和许多其他语言中完成:

What is the difference between a function call and function reference?

Javascript function call with/without parentheses

关于flutter - 不带括号和带括号调用函数有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497620/

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