泛型T首先我们先看一下apply的源码fun T.apply(block: T.() -> Unit): T { block(); return this }这个泛型T可以为null,也就是说null也被赋予了apply的方法null.apply{ System.out.println("null apply")}在IDE里面null是没有....
转载
2022-07-30 00:43:07
163阅读
kotlin的作用域函数主要有run、with、apply、also、let这几个函数的目的是:在对象的上下文中执行代码块。当对一个对象调用这样的函数并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。我们可以通过分析各个作用域函数的源码来了解他们各自的操作 这里先定义两个类,接下去要添加的函数均在class ExternInner 中添
转载
2023-07-09 21:35:53
200阅读
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阅读
最近的项目采用Kt编写的,回顾一下kotlin的知识点。其中和java最特别的几个使用是需要重点学习回顾的:等等。重点就是上图所描述的,其中的差别主要是 参考a
原创
2024-04-18 10:24:15
154阅读
学习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阅读
Kotlin笔记12-标准函数和静态方法-run,with,apply 7. 标准函数和静态方法标准函数with,run,applywith
with: 参数一:任意类型的对象,参数二:Lambda表达式
序号Tips1Lambda表达式的最后一行作为返回值返回标准格式:val result = with(obj) { //这里是obj的上下文 "value" //with函数
原创
2022-06-24 00:26:21
132阅读
综述和Java相比,在Kotlin中提供了不少新的特性。这次我们就来聊一聊Kotlin的一些通用的扩展函数run,with,let,also和apply。对于这五个扩展函数它们都存在于Kotlin的源码标准库当中,也就是在Standard.kt文件当中。它们都是适用于任何对象的通用扩展函数。但是对于run,with,let,also和apply这五个函数他们的用法及其相似,以至于我们无法确定去选择
转载
2024-08-20 16:25:49
63阅读
在 Kotlin 开发中,尤其是在 Android 应用中,经常会使用 `let` 和 `run` 扩展函数来处理可空类型和上下文对象。这两者虽然在某些场景中相似,但它们的用途和返回值却各不相同。实际上,如果没有充分理解它们的不同,可能会导致应用程序不如预期地工作。
### 问题背景
在某个项目中,我们为一个用户配置模块添加了多个逻辑来处理输入数据。然而,在使用 `let` 和 `run` 时
目前uwp版本oneNote对文本格式的支持不够全面 不过可以利用间接来实现目的:使用格式刷 就是借助行距较小的文本,通过格式刷(可
原创
2022-06-14 18:14:34
101阅读
kotlin中有一些标准库函数-run、with、let、apply以及also,对初步学习过程,总是傻傻分不清楚,特做此记录。上面的标准库函数,依次可以分为run{}、T.run()、with()、T.let()、T.apply()、T.also(),它们通通为调用者提供内部作用域,所以,它们又叫作用域函数。记录这些作用域函数之前,我们先从简地学习一下{}{}:在kotlin中只用{}的话是作为
转载
2024-01-12 10:51:12
96阅读
函数名定义inline的结构函数体内使用的对象返回值是否是扩展函数适用的场景letfun <T, R> T.let(block: (T) -> R): R = bl
原创
2022-11-04 11:47:26
401阅读
转载请标明出处: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阅读
一.标准函数1.with函数with函数接受两个参数,第一个是任意类型的对象,第二个是lambda表达式。作用:连续调用同一对象的多个方法。返回值是最后一个值格式如下:val result = with(obj){
// 这里是obj的上下文
"value" // with函数的返回值
}
举个例子:// val list = listOf("a", "b", "c")
//
一.标准函数1.with函数with函数接受两个参数,第一个是任意类型的对象,第二个是lambda表达式。作用:连续调用同一对象的多个方法。返回值是最后一个值格式如下:val result = with(obj){
// 这里是obj的上下文
"value" // with函数的返回值
}
举个例子:// val list = listOf("a", "b", "c")
//
(调用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阅读
学习了 2022 年集训队论文 《浅谈与 Lyndon 理论有关的字符串组合问题》 写得很好,像我这样的字符串小白也能看懂
Lyndon 分解若字符串小于它的每一个真后缀,则称是 Lyndon 串。若字符串是 Lyndon 串,则是近似 Lyndon 串,其中是的前缀。串 可以分解位 ,其中 。最小后缀族:对于串 的后缀 ,若存在 使得任意后缀 满足 ,则 是 的一个有效后缀,有效后缀
原创
2022-07-05 09:45:44
551阅读