kotlin如何以及何时运行?

问题描述 投票:-3回答:2

对于互联网上的所有例子,我无法弄清楚kotlin何时以及如何运行?

if(phones.size == 0){
        phones.add("")
    }
return phones[0]

因此,如果电话列表大小为0,我们添加空字符串并返回该字符串。

现在,如何让let做同样的事情?

phones.let {
    return ""
}

这适用于大小为0,还是我必须有空列表?

我需要返回关键字,如果是,在哪里?

以上的乐趣总是会返回空字符串?或者只是当手机为空?

什么时候让代码块甚至运行?

kotlin let
2个回答
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

原帖

如果你的'手机'对象是Nullable类型,

 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解决方案。


0
投票

如果你对如何用Kotlin的FP习语编写你的逻辑感兴趣,它根本不涉及let

phones.takeIf { it.isEmpty() }?.add("")
return phones[0]

但是,我发现这个成语并不比你开始时更好。

© www.soinside.com 2019 - 2024. All rights reserved.