标签:isLong 函数 接收者 name 标准 println run 库函数
aplay:
apply 函数可以看作一个配置函数, 你可以传入一个接收者,然后调用一系列函数来配置它以便使用。调用一个个函数类配置接收者时,变量名就省掉了。
apply 能让每一个配置函数 都做用于接收者,这种行为叫做 相关作用域。
apply 执行完毕 会返回当前的接收者。
let
let 会返回lambda的最后一行。
fun formatGreeting(guestName: String?): String {
return guestName?.let {
"Welcome, $it."
} ?: "What's your name?"
}
println(formatGreeting("Jack"))
println(formatGreeting(null))
run
run 函数不返回接收者,run函数 返回lambda的结果 true/false
run 也可以用来执行 函数引用 ::函数
var file = File("E://i have a dream_copy.txt")
val result = file.run {
this.readText().contains("great")
}
println(result) //false
val result2 = "The people's Republic of China.".run(::isLong)
println(result2) //true
fun isLong(name: String) = name.length >= 10
"The people's Republic of China."
.run (::isLong)
.run (::showMessage)
.run (::println)
fun isLong(name: String) = name.length >= 10
fun showMessage(isLong:Boolean):String{
return if(isLong){
"Name is too long."
}else{
"Please rename."
}
}
with
with是run的变体。他们的功能行为是一样的。
但是调用with时需要 值参 作为其第一个参数传入。
also(类似let)
also 也是把接收者作为 值参 传给 lambda
also 返回接收者对象。
also 尤其适合针对同一原始对象,你可以基于原始的接收者对象 执行额外的链式调用。
takeIf
taleIf 类似if,先判断是否满足某个条件,在决定是否可以赋值某个变量或执行某项任务。
可以直接在对象实例上调用,避免临时变量赋值的麻烦。
标签:isLong,函数,接收者,name,标准,println,run,库函数 来源: https://blog.csdn.net/qq_33552379/article/details/121289927
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。