除了上述示例中的简单用法,takeIf函数还可以在实际应用中发挥作用。例如,在网络请求中,我们可以使用takeIf函数检查返回的结果是否为null,并根据不同的条件来执行相应的操作。 valresponse:Response?=performNetworkRequest() response?.takeIf{} ?.let{showSuccessMessage()} ?:showErrorDialog() 在上面的示例中,我们...
Kotlin语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、takeIf 标准库函数 takeIf 函数 的 返回值 由其 Lambda 表达式参数的返回值 确定 , Lambda 表达式 返回 true , 则 返回 接收者对象 ; Lambda 表达式 返回 false , 则 返回 null 空值...
2. takeIf 和takeUnless 用法和作用 takeIf:如果对象满足给定的条件,则返回对象本身;否则返回null。 kotlin val str: String? = "example" val nonNullStr = str.takeIf { it != null && it.isNotEmpty() } println(nonNullStr) // 输出: example takeUnless:如果对象不满足给定的条件,则返回对...
1、takeIf的源码 /** * Returns `this` value if it satisfies the given [predicate] or `null`, if it doesn't. * * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless). */ @kotlin.inter...
是从T 对象本身调用,即 T.takeIf; predicate 函数将 T 对象作为参数; 根据predicate 的结果最终返回 this 或 null。 根据以上的特点,我们可以推导出其合适的用法: 1. 因为其由 T 对象本身调用,因此可以更方便的处理 null 值问题: // Original code if (someObject != null && status) { doThis() } /...
用法 1. takeif publicinlinefun<T>T.takeIf(predicate:(T)->Boolean):T?{contract{callsInPlace(predicate,InvocationKind.EXACTLY_ONCE)}returnif(predicate(this))thiselsenull} 是扩展函数 上下文对象的引用方式:it 返回值:如果代码块predicate里面返回为true,则返回这个对象本身,否则返回空 ...
六、takeIf 标准库函数 七、takeUnless 标准库函数 Kotlin语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、apply 标准库函数 Kotlin 标准库函数 中的 apply 函数 , 该函数可以看作 实例对象 的 配置函数 , ...
takeUnless 跟 takeIf 是相反的关系,takeUnless 的闭包条件满足则返回空,不满足则返回调用者自己。 repeat 函数。调用方法:repeat( times ) { 闭包 }。将闭包的操作执行 times 次。闭包里面的 it 是当前执行的循环次数,从 0 开始计数。 // code 4
repeat就是重复做一些什么事情咯,传3就是从0,1,2 每次操作一次list.add(it),it就是那个0,1,2 takeIf takeUnless vali=4.0valj=i.takeIf{it>0}valk=i.takeUnless{it>0}println(j)println(k) takeIf需要在方法体内最后一行返回个Boolean,如果满足条件,则返回自身,否则返回null; takeUnless相反。
这篇文章旨在对Kotlin中的作用域方法(Scope Function)——即run、with、also、apply、let五个方法进行学习和记录(还要两个额外的方法takeIf和takeUnless),以便自己复习和让其他人学习。全文分为两个部分:官方文档翻译和作者思考。 话不多说,入正题! 官方文档翻译 ...