《第一行代码 第3版》学习笔记——Kotlin讲堂:标准函数和静态方法

本文介绍了Kotlin中的几个重要标准函数:let、with、run和apply,它们提供了便捷的对象操作和上下文管理。let函数常用于配合可空检查,with函数用于提供对象上下文并在连续调用中简化代码,run函数与with类似但不指定返回值,apply则返回对象本身。此外,还讨论了Kotlin中模拟静态方法的单例类和companion object,以及如何通过注解实现真正的静态方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准函数with、run和apply

Kotlin的标准函数指的是Standard.kt文件中定义的函数,任何Kotlin代码都可以调用所有的标准函数。

let函数

该函数提供了函数式API的编程接口,并将原始调用对象作为参数传递到Lambda表达式中。


/**
 * Calls the specified function [block] with `this` value as its argument and returns its result.
 *
 * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).
 */
@kotlin.internal.InlineOnly
public inline fun <T, R> T.let(block: (T) -> R): R {
   
   
    contract {
   
   
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    }
    return block(this)
}

let函数主要配合?.进行使用,可以在外部判断后,如果对象不为空,则将其传入let的lambda表达式之中,处理该对象的多条调用。

fun doStudy() {
   
   
	study?.let {
   
   
		it.readBooks()
		it.doHomework()
	}
}

同时,let函数还可以处理全局变量的判空问题。如果使用if语句则仍然会提示错误,这是因为全局变量随时有可能被其他线程修改,即使做了判空处理,也会有空指针的风险。

with函数

with函数接收两个参数:第一个参数可以是一个任意类型的对象,第二个参数是一个Lambda表达式。with函数会在Lambda表达式中提供第一个参数对象的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。

val result = with(obj) {
   
   
	//这里是obj的上下文
	"value"//with函数的返回值
}

with函数的左右是可以在连续调用同一个对象的多个方法时让代码变得更加精简,如下所示:

val list = listOf<String>("Apple", "Banana", 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值