对于Internet上的所有示例,我都无法弄清何时以及如何让Kotlins运行?
if(phones.size == 0){
phones.add("")
}
return phones[0]
因此,如果电话列表的大小为0,我们将添加一个空字符串,并将其返回。
现在,人们对let怎么做?
phones.let {
return ""
}
此文件的大小为0,还是我必须有一个空列表?
我是否需要return关键字,如果是,在哪里?
上面的乐趣总是返回空字符串吗?或仅当电话为空时?
什么时候让代码块甚至运行?
答案 0 :(得分:1)
更新:
val cakes = listOf("carrot", "cheese", "chocolate")
fun main(args: Array<String>) {
var cakesEaten = 0
while (cakesEaten < 3) { // 1
cakesEaten ++
val result = cakes?.let{
if(cakesEaten == 2) {
"HeyLo"
} else {
2
}
}
println("result value = $result")
when(result) {
is String -> println(" result variable is a String")
is Int -> println(" result variable is Integer")
}
}
}
result value = 2
result variable is Integer
result value = HeyLo
result variable is a String
result value = 2
result variable is Integer
如果您的“电话”对象为可空类型,
val result = phones?.let{
// this block runs only if phones object is not null
// items can be accessed like it.size
// expression result will be returned. no need to mention return.
if(it.size == 0) {
it.add("")
it[0]
} else it.size
}
结果值将是[0]或it.size,其类型将是Any。
但是,如果需要此功能,则可以检查Markos解决方案。
答案 1 :(得分:0)
如果您对如何在Kotlin的FP习惯用法中编写逻辑感兴趣,那么它根本不涉及let
:
phones.takeIf { it.isEmpty() }?.add("")
return phones[0]
但是,我发现这个成语并不比您刚开始时要好。