如何在北京找到提供专业内网网站制作的服务?
摘要:内网 做 网站,北京网页制作专业服务,国外包装设计欣赏网站,外贸公司起名目录 一 内置函数1.1 apply 函数1.2 let 函数1.3 run函数1.4 with函数1.5 also函数1.6 takeIf函数1.7 takeUnle
内网 做 网站,北京网页制作专业服务,国外包装设计欣赏网站,外贸公司起名目录 一 内置函数1.1 apply 函数1.2 let 函数1.3 run函数1.4 with函数1.5 also函数1.6 takeIf函数1.7 takeUnless函数1.8 总结 Kotlin内置函数包括#xff1a;let、run、with、apply、also#xff0c;这些函数都是在Any类中定义的扩展函数#xff0c;所以任何对象都可以调用… 目录 一 内置函数1.1 apply 函数1.2 let 函数1.3 run函数1.4 with函数1.5 also函数1.6 takeIf函数1.7 takeUnless函数1.8 总结 Kotlin内置函数包括let、run、with、apply、also这些函数都是在Any类中定义的扩展函数所以任何对象都可以调用这些函数。
一 内置函数
1.1 apply 函数
apply 是 Kotlin 标准库中的一个函数它允许您在调用对象的上下文中执行一系列操作并返回该对象本身。这在构建对象的过程中非常有用因为它允许您在对象创建和初始化的同时进行一些链式操作。
apply 函数的签名如下
inline fun T T.apply(block: T.() - Unit): T这里的 T 是接收者对象的类型。block 参数是一个函数字面值它可以在接收者对象上执行一系列操作。在函数字面值内部可以通过 this 来访问接收者对象。
下面是一个使用 apply 函数的示例假设我们要创建一个 Person 类的对象并初始化其属性
package Expetion/*** description:重点理解apply函数的返回值是调用对象本身也就是this* author: shu* createDate: 2023/8/8 19:50* version: 1.0*/
// 定义一个数据类
data class Person(var name: String , var age: Int 0)
fun main(){val person Person(张三, 20)// apply函数的返回值是调用对象本身val result person.apply {name 李四age 30}println(result)println(person)
}在这个例子中我们通过 apply 函数在对象初始化的过程中设置了 name 和 age 属性然后将初始化后的对象赋值给 person 变量。
apply 函数的一个主要优势是它允许您在初始化对象的同时进行链式操作而无需显式地创建中间变量。这在代码的可读性和简洁性方面非常有帮助。
1.2 let 函数
let 是·Kotlin 标准库中的另一个函数它也用于对对象执行一系列操作但与 apply 不同它在操作完成后返回一个可能不同的值。let 函数的主要用途是在一个非空的对象上执行操作同时避免空引用异常。
let 函数的签名如下
inline fun T, R T.let(block: (T) - R): R在这里T 是接收者对象的类型R 是 block 函数的返回类型。block 参数是一个函数字面值它接受一个参数并返回一个值。
下面是一个使用 let 函数的示例假设我们要对一个非空字符串执行一些操作
package Expetion/*** description: 重点理解let函数的返回值是函数里面最后一行的返回值也就是最后一行的返回值是什么let函数的返回值就是什么* author: shu* createDate: 2023/8/8 19:55* version: 1.0*/
// 定义一个数据类
data class Person01(var name: String , var age: Int 0)
// let函数的返回值是函数里面最后一行的返回值
fun main(){val person Person01(张三, 20)val result person.let {it.name 李四it.age 30返回值}println(result)println(person)
}
在这个例子中我们使用了安全调用操作符 ?. 来调用 let 函数以确保在 input 为非空的情况下才会执行 let 函数内部的操作。it 表示 input 的值然后我们在 let 函数内部获取了字符串的长度并将结果赋值给 result 变量。
let 函数在处理可空对象时特别有用因为它允许您在对象非空的情况下执行一些操作并获取一个非空的返回值。这有助于避免空引用异常并提高代码的安全性。
