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 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin - Lambda表达式(匿名函数) -> 正文阅读

[移动开发]Kotlin - Lambda表达式(匿名函数)

?【匿名函数】

函数字面值:

????????一个函数体,或者说是一段代码,本身没有名字,我们可以把它绑定到一个变量上,通过这个变量操作它,Lambda表达式和匿名函数都叫函数字面值。

//匿名函数,必须有一个变量来接收
val sayHi = fun (name: String) = println("名字是:$name")

函数类型:

????????在kotlin语言,对类型这个概念进一步抽象了,类、基本类型都是类型,匿名函数也能抽象出类型,叫函数类型。既然函数可以抽象成一个类型,那么函数类型就可以作为方法的参数传递了。

//show 是函数类型的变量,(Int, Int) -> Int?是函数类型, { a, b -> a + b } 是变量的值
val show : (Int, Int) -> Int = { a, b -> a + b }?

//函数类型作为方法的参数
fun test(a: Int, b: (Int, Int) -> Int): Int {
    return a + b(2, 3)
}
//简写
fun test2(a: Int, b: (Int, Int) -> Int) = a + b(2, 3)

【好处】

? ? ? ? Java 中定义工具类方法的时候,一般把这些方法定义成类方法。在 Kotlin 中直接在文件中定义方法就行,不用类包裹了,不过编译器最后还是把它编译成了类方法。

【写法】

①无参数的情况:

val/var 变量名 = { 操作代码?}

②有参数的情况:

写法一:完整的参数类型标注与表达式返回值

val/var 变量名 : (参数1 : 类型, 参数2?: 类型, ...) -> 返回值类型 = { 参数1, 参数2, ... -> 操作代码 }

写法二:当推断的返回值类型不为 Unit 时,即为 -> 后面代码的最后一个表达式的类型

val/var 变量名 = {?参数1: 类型, 参数2: 类型, ... -> 操作代码 }

fun test1(a: Int, b: Int): Int { return a + b }     //普通函数
fun test2(a: Int, b: Int) = a + b                   //简写
val test3: (Int, Int) -> Int = { a, b -> a + b }    //匿名函数,写法一
val test4 = { a: Int, b: Int -> a + b }             //匿名函数,写法二

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:39:10  更:2021-08-22 13:40:49 
 
开发: 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/23 10:13:14-

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