IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【Flutter】方法加括号和不加括号的区别 -> 正文阅读

[移动开发]【Flutter】方法加括号和不加括号的区别

定义的方法:

 print1() {
    print('object');
    return 'd';
  }

不加括号就是传递方法

 GestureDetector(
 onTap: logic.print1,
 child: Text('点击测试'),
),

此时控制台会输出

///object

加了括号就是返回值

  GestureDetector(
  onTap: logic.print1(), //加了括号就是返回 值-----> 
  child: Text('点击测试'),
 ),

控制台报错:
type 'String' is not a subtype of type '(() => void)?

注意:
不加括号就是传递方法,方法是一个对象的实例,可以传递给变量。
加括号就是调用这个方法。方法的返回值,可有可无。
在dart语言中,所有都是对象,所以可以被变量引用。

比如上面的例子中:

如果这样的话,logic.print1(),logic.print1()并将结果传递给onTap,这个是一个常见的错误。这个是对logic.print1的引用,而不是调用他。
一般onTap,会采用这样的方式:来创建闭包或内联函数

  1. ()=>expression
  2. (){ statements }

通过这样的方式,创建内联函数、该函数作为参数传递,在事件onTap点击的时候,传递进去。
statementsexpression,具有创建他们的context,并且可以访问和使用context中,可用的所有成员和标识符(变量、方法、函数、typedef等

总结:

  • 加括号,logic.print1(),直接调用方法,目的是直接获取方法的返回值,利用返回值来实现业务逻辑。
  • 不加,间接调用方法,把该方法作为参数传递过去,在调用者其内部,调用该方法。

其实,

 onTap: logic.print1
 onTap:()=> logic.print1()

两种方式并没有区别,都可以创建出print1()(argument type function)

参考:

What does the empty parentheses after the onPressed property mean in Dart?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 17:00:33  更:2022-06-26 17:00:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 3:21:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码