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基础之let、also、with、run、apply -> 正文阅读

[移动开发]kotlin基础之let、also、with、run、apply

1、let的用法

1.1、let函数适用的场景
场景一: 最常用的场景就是使用let函数处理需要针对一个可null的对象统一做判空处理。
场景二: 然后就是需要去明确一个变量所处特定的作用域范围内可以使用

// 使用Java
if( mVar != null ){
    mVar.function1();
    mVar.function2();
    mVar.function3();
}

//使用kotlin
mVar?.let{
	it.function1();
	it.function2();
	it.function3();
}

2、also用法

// let函数
var result = mVar.let {
               it.function1()
               it.function2()
               it.function3()
               999
}
// 最终结果 = 返回999给变量result

// also函数
var result = mVar.also {
               it.function1()
               it.function2()
               it.function3()
               999
}
// 最终结果 = 返回一个mVar对象给变量result

3、with函数用法

3.1 作用
调用同一个对象的多个方法 / 属性时,可以省去对象名重复,直接调用方法名 / 属性即可

3.2 应用场景
需要调用同一个对象的多个方法 / 属性

3.3 使用方法

with(obj){
  //TODO 
}

3.4 例子

//kotlin
val person = Person("chenjk","27")
with(person){
	println(""my name is $name, i am $age years old)
}

//java
Person person = new Person("chenjk","27")
System.out.println("my name is" + person.name + ",i am "+person.age  )

4、run函数

结合let函数和with函数
即:
1、调用同一个对象的多个方法 / 属性时,可以省去对象名重复,直接调用方法名 / 属性即可
2、定义一个变量在特定作用域内
3、统一做判空处理

//kotlin
val people = People("cjk",25)
people?.run{
	printlin("my name is $name,i am $age years old")
}

5、apply函数

5.1 作用&应用场景

与run函数类似,但区别在与返回值:

  • run函数返回最后一行的值/表达式
  • apply函数返回传入的对象本身

5.2 应用场景

对象实例初始化时需要对对象中的属性进行赋值&返回该对象

5.3 示例

//run
val people = People("cjk",25)
val result = people?.run{
	  println("my name is &name, I am &age years old")
	  999
}
//最终结果 = 返回999给变量result
//apply
val people = People("cjk",25)
val result = people?.apply{
	  println("my name is &name, I am &age years old")
	  999
}
//最终结果 = 返回一个people对象给变量result
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:36:36  更:2021-07-24 11:37:24 
 
开发: 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年5日历 -2024/5/2 6:41:38-

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