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

2023-12-31

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

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

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

_incrementCounter具有 void 返回类型

void _incrementCounter() {
    setState(() {
        _counter++;
    });  
}

但我没有找到任何合适的文档。


_incrementCounter inside onPressed是一个函数引用,这基本上意味着它不会立即执行,而是在用户单击特定小部件后执行。(回调)

_incrementCounter()是一个函数调用并且立即执行。

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

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

or

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

这不是 dart 特有的东西,它也是在javascript以及许多其他语言:

函数调用和函数引用有什么区别? https://stackoverflow.com/questions/15886272/what-is-the-difference-between-a-function-call-and-function-reference

带/不带括号的 JavaScript 函数调用 https://stackoverflow.com/questions/34563330/javascript-function-call-with-without-parentheses

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不带括号和带括号调用函数有什么区别 的相关文章

随机推荐

  • R:按名称组合嵌套列表元素

    假设我有一个列表结构 其中有data frames嵌套在每个元素中 l lt list A list D data frame V1 seq 3 V2 LETTERS 1 3 E data frame V1 seq 3 V2 LETTERS
  • 如何在 Forth 中创建数组?

    我知道 这个问题过去经常被问到 也许之前的 Stack Overflow 帖子中已经给出了这些信息 但学习 Forth 是一项非常复杂的任务 重复有助于理解串联编程语言相对于 C 等替代语言的优势 我从 Forth 教程中学到的是 Fort
  • 基于内容的节流

    我想知道Camel是否可以根据交换的内容进行限制 情况如下 我必须通过soap 调用网络服务 其中 发送到该webservice的参数中有一个customerId 问题是 如果给定的 customerId 每分钟有超过 1 个请求 则 We
  • jQuery keyup keyCode 在 Opera 中不起作用

    Opera 浏览器是否有可能忽略 keyCode 40 向下箭头 test keyup function e body append e keyCode 测试它 http www jsfiddle net V9Euk 454 http ww
  • 如何将已知的接口属性与自定义索引签名结合起来?

    如何键入一个可以同时具有几个属性的对象声明的可选属性 e g hello string moo boolean 以及自定义属性 必须是函数 例如 custom string v any gt boolean 这就是我想看到的 例如 cons
  • 递归查询中不允许使用聚合函数。有没有其他方法可以编写此查询?

    TL DR我不知道如何编写在递归部分不使用聚合函数的递归 Postgres 查询 是否有其他方法可以编写如下所示的递归查询 假设我们有一些运动 CREATE TABLE sports id INTEGER name TEXT INSERT
  • WinRt 页面导航

    如何从自定义类内部的代码导航到页面 例如 假设我的 MainPage xaml cs 中有以下代码 private void DoSomething object sender RoutedEventArgs e var work new
  • Android 低内存杀手和应用程序后台堆栈

    当系统内存不足时 Android系统可能会决定删除某个应用程序进程 以便回收资源以进行更重要的工作 即启动属于另一个应用程序的服务 但是 我无法确定 Android 系统是否可以仅删除应用程序任务 返回堆栈 而不触及相应的应用程序进程 如果
  • 无法安装 deepface,因为软件包版本有冲突

    我正在尝试在 mac m1 上安装 deepface 我已经安装了tensorflow macos当前版本是2 5 0 但是当我尝试安装 deepface 时 它 说依赖项版本存在冲突 例如deepface 0 0 65 depends o
  • 如何在 SELECT FOR XML 查询中选择返回的列名?

    MS SQL 有一种方便的解决方法 可以将多行中的列值连接成一个值 SELECT col1 FROM table1 WHERE col2 x ORDER by col3 FOR XML path 这会返回一个很好的记录集 XML F52E2
  • 我们可以通过编程方式注销 Facebook吗

    我使用 facebook sdk 3 1 在我的 iphone 应用程序中进行 facebook 登录 登录后 它将进入我的应用程序 但我没有提供任何注销按钮 所以 当我们单击 facebook 登录按钮时 我将获得以前的用户 facebo
  • AS3:NetStream 的音频活动级别

    我 再次 抓狂 试图找到一种读取 NetStream 音频活动级别的方法 类似于使用麦克风执行此操作的方法 我不想让每个客户端通过 SharedObjects 等发送它的活动级别 这似乎是真正让它工作的唯一方法 非常感谢 Dave 在 AS
  • JSP“无法解决导入问题”

    我正在尝试从 JSP 页面调用 Java 类 我已经使用 JDeveloper 创建了该项目 我收到一条错误消息 无法解析导入 我已经在根文件夹的WEB INF中添加了Class文件 并尝试编译 但仍然显示相同的错误 下面是代码 p p
  • SQL 如何在多个分区上进行选择?

    有没有比以下更有效的方法 select from transactions partition partition1 union all select from transactions partition partition2 union
  • c# Linq to Objects - FirstOrDefault 性能

    我们正在尝试优化一些方法 我们使用 Redgate 的性能分析器来查找一些性能漏洞 我们的工具通过多种方法使用 Linq to 对象 但我们注意到 一个FirstOrDefault收集 1000 个对象需要很长时间 探查器还警告查询速度非常
  • 在 SparkSQL 中使用 Avro 模式和 Parquet 格式进行读/写

    我正在尝试从 SparkSQL 写入和读取 Parquet 文件 出于模式演变的原因 我想在写入和读取中使用 Avro 模式 我的理解是 这可以在 Spark 之外 或在 Spark 中手动 使用例如AvroParquetWriter 和
  • 旋转端口登陆Android4.X后如何避免智能手机中的剪切/复制/粘贴?

    我正在努力避免在智能手机中剪切 复制 粘贴 对于平板电脑来说没问题 它在端口模式下很好 但在陆地模式下 EditText 显示一个 下一步 按钮 选择文本后 下一个按钮将转换为具有复制 剪切和粘贴选项的编辑按钮 那么 当编辑按钮出现时 有什
  • Java 中条件运算符内部的转换

    这会在 Eclipse IDE 中出现错误 错误符号出现在行号附近 String allText null 之后我做了一些事情 比如初始化数组等等 但要根据一些条件 所以我想使用如下所示的条件运算符 List
  • 是否可以仅在加载所有模块后才显示 shell?

    我目前正在开发一个应用程序 该应用程序使用 PRISM 4 将其功能划分为不同的模块 我注意到我的应用程序的 Shell 在其区域中保存了模块的视图 在加载模块之前加载并显示 这意味着首先显示 Shell 然后在相当长的时间 大约半秒 之后
  • 不带括号和带括号调用函数有什么区别

    在 onPressed 或 Ontap 上调用不带括号的函数和带括号的函数有什么区别 我只知道在 onPressed 上不能用括号调用 void 函数 floatingActionButton FloatingActionButton on