1a. 功能定义public inline fun <T, R> T.let(block: (T) -> R): R = block(this)
public inline fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
public inline fun
转载
2024-09-24 01:12:21
40阅读
kotlin的作用域函数主要有run、with、apply、also、let这几个函数的目的是:在对象的上下文中执行代码块。当对一个对象调用这样的函数并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。我们可以通过分析各个作用域函数的源码来了解他们各自的操作 这里先定义两个类,接下去要添加的函数均在class ExternInner 中添
转载
2023-07-09 21:35:53
200阅读
在 Kotlin 开发中,尤其是在 Android 应用中,经常会使用 `let` 和 `run` 扩展函数来处理可空类型和上下文对象。这两者虽然在某些场景中相似,但它们的用途和返回值却各不相同。实际上,如果没有充分理解它们的不同,可能会导致应用程序不如预期地工作。
### 问题背景
在某个项目中,我们为一个用户配置模块添加了多个逻辑来处理输入数据。然而,在使用 `let` 和 `run` 时
最近的项目采用Kt编写的,回顾一下kotlin的知识点。其中和java最特别的几个使用是需要重点学习回顾的:等等。重点就是上图所描述的,其中的差别主要是 参考a
原创
2024-04-18 10:24:15
154阅读
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article
原创
2021-09-08 18:53:38
314阅读
/** * run函数的匿名函数里持有的是this */fun main() { val str = "Derry is OK" val r1 = str.run { true 54.355f } println(r1) //具名函数配黑run函数 // 具名函数判断长度 isLong //匿名函数配合run str.ru
原创
2023-03-16 08:58:00
57阅读
函数名定义inline的结构函数体内使用的对象返回值是否是扩展函数适用的场景letfun <T, R> T.let(block: (T) -> R): R = bl
原创
2022-11-04 11:47:26
401阅读
Kotlin标准函数:标准函数letfun main() {
val student = Student("lucky", 19);
study(student)
}
fun study(student: Student?) {
study?.doHomework()
study?.readBooks()
}在Kotlin学习 - 可空系统类型中,如果入参是可以为
转载
2024-08-13 12:07:00
61阅读
# Android Kotlin中的let函数和else用法详解
在使用Android开发过程中,我们经常需要对一个变量进行非空判断,并在其不为空时执行相应的操作。为了简化这个过程,Kotlin提供了let函数,它是一种使用简洁的方式来处理可null的对象。同时,我们还可以结合else关键字来处理变量为空时的情况。本文将详细介绍在Android Kotlin中如何使用let函数和else关键字,
原创
2023-10-31 13:35:29
501阅读
let源码@kotlin.internal.InlineOnly public inline fun <T, R> T.let(block: (T) -> R): R = block(this)解析:从源码let函数的结构来看它是只有一个lambda函数块block作为参数的函数,调用T类型对象的let函数,则该对象为函数的参数。在函数块内可以通过 it 指代该对...
原创
2023-04-06 11:34:07
88阅读
(调用apply会返回接受者对象,最终file对象被返回,apply函数起到配置函数的作用) 组合使用实践: guestName不为空时: guestName为空时: 不使用let的写法 run函数: run函数可以链式调用依次传递值,返回lambda表达式的执行结果 ...
转载
2021-10-09 10:30:00
310阅读
2评论
let 结构:fun <T, R> T.let(block: (T) -> R): R = block(this)返回值:闭包形式
原创
2023-03-12 09:58:42
421阅读
转载地址:https://blog.csdn.net/u013064109/article/details/78786646
转载
2018-08-14 21:04:30
2424阅读
Let function is another way to solve null problem in kotlin. When you have such problem: var favoriteColor: String? = null...... return if f(avoriteCo
转载
2020-10-28 20:54:00
126阅读
2评论
Kotlin 的语法糖,比巧克力还甜哦~~
原创
2022-10-09 05:48:13
161阅读
kotlin中,let、run、with、apply、also这几个标准函数使用起来非常方便,合理使用可以很大程度上的简化代码,但是这几个标准函数用法和功能相似,初学kotlin时,很容易会不知道该选哪一个,其实看下源码并熟悉kotlin的高阶函数就很容易理解了。这几个标准函数的源码如下,新版本里面加入了一些别的代码,不过不影响这里的说明。注:为了方便描述,以下的a.*的a代表一个对象a;下文中提
综述和Java相比,在Kotlin中提供了不少新的特性。这次我们就来聊一聊Kotlin的一些通用的扩展函数run,with,let,also和apply。对于这五个扩展函数它们都存在于Kotlin的源码标准库当中,也就是在Standard.kt文件当中。它们都是适用于任何对象的通用扩展函数。但是对于run,with,let,also和apply这五个函数他们的用法及其相似,以至于我们无法确定去选择
转载
2024-08-20 16:25:49
63阅读
学习kotlin with run apply also letKotlin App架构我们把他们定义拆开来分析比如本身方法,我们叫前方法,后面传入的lambda,我们叫后方法,而几个方法中主要和扩展和传入参数有关1. with //前不扩展,前传入receiver,后扩展receiver,后不传入参数,返回值R(也就是函数返回值)
public inline fun <T, R&g
转载
2024-01-29 10:26:50
33阅读
Java中常见的错误就是访问空引用的成员变量,导致空引用异常,就是我们 常说的空指针异常 – NullPointerException(简称为NPE).1. Kotlin 可空类型和非空类型Kotlin 声明一个对象 可为 null ,则声明如下:val object: Any ?= nullKotlin 声明一个对象 不可为 null ,则声明如下:val object: Any = Objec
转载
2024-01-28 07:24:34
118阅读