1 普通函数 VS 扩展函数 (Normal vs. extension function) 如果我们对比with和T.run这两个函数的话,他们实际上是十分相似的。下面使用他们实现相同的功能的例子. with(webview.settings) { javaScriptEnabled = true databaseEnabled = true } // similarly webview.settings.run { javaScriptEnabled = true data...
with函数也是一个单独的函数,并不是Kotlin中的extension,指定的T作为闭包的receiver,使用参数中闭包的返回结果 /** * Calls the specified function [block] with the given [receiver] as its receiver and returns its result. */ @kotlin.internal.InlineOnly public inline fun <T, R> with(receiver: T, ...
3. 返回this vs 其他类型 (Return this vs. other type)let和also函数都用于执行操作,但let返回其他类型值,而also返回原始类型。选择取决于操作需求。通过这三个属性特征,可以清楚区分和选择合适的函数。了解这些函数的使用有助于提高Kotlin代码的可读性、优雅性和简洁性。正确选择和使用标准库函数是衡...
以前也总结过Kotlin的一些内置函数let,apply,run,with的区别——地址,后面又增加了also,takeIf,takeUnless等函数,所以这里重新总结下,然后介绍下使用场景。前提介绍Kotlin和Groovy等语言一样,支持闭包(block),如果函数中最后一个参数为闭包,那么最后一个参可以不写在括号中,而写在括号后面,如果只有一个参数,括号也...
funmain(){valbook=Book().let{it.name="《计算机网络》"}println(book)}控制台输出: kotlin.Unit 将Book 对象的 name 值进行了赋值操作,同样对 Book 对象进行打印,但是最后控制台的输出结果为“kotlin.Unit”,这是因为在 let 函数块的最后一句是赋值语句,print 则将其当做是一个函数来看待。
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。 使用let作用域函数转换对象并返回结果 首个提示关于let作用域函数,当你想对一个对象执行转换并分配结果时,它特别有用: ...
作用域函数是Kotlin比较重要的一个特性,共分为以下5种:let、run、with、apply 以及 also,这五个函数的工作方式可以说非常相似,但是我们需要了解的是这5种函数的差异,以便在不同的场景更好的利用它。读完这篇文章您将了解到: 什么是Kotlin的作用域函数?
最近的项目采用Kt编写的,回顾一下kotlin的知识点。 其中和java最特别的几个使用是需要重点学习回顾的:let,run,with,apply,also等等。 回顾 重点就是上图所描述的,其中的差别主要是 参考 代码 let // 判断中文环境 - it的方式 protected fun isChinese():Boolean ...
Kotlin中标准库函数(apply、let、run、with、also、takeIf、takeUnless)的使用详解 一、apply函数 apply apply函数可以看作是一个配置函数,你可以传入一个接收者,然后调用一系列函数来配置它以便使用,如果提供lambda表达式给 apply函数执行,它会返回配置好的接收者。
在Kotlin有一些可以简化代码的语法糖,比如 run、let、with、apply、also、takeIf、takeUnless 等。 再不明白这些语法糖的情况下去看 Kotlin 代码就会一脸懵逼,可当明白之后就会觉得原来可以这样简化。 带接收者的函数字面值 使用这些语法糖之前回顾一下 Kotlin 的函数式编程,在分析 Kotlin 使用 Anko 构建布局 文章中...