簡體   English   中英

Kotlin - 在 lambda 函數中使用三元運算符的意外標記(使用“;”分隔同一行上的表達式)

[英]Kotlin - Unexpected tokens (use ';' to separate expressions on the same line) with ternary operator in lambda function

當我嘗試運行此代碼時,我在 lambda 函數上收到錯誤Unexpected tokens error:

fun main() {
    val oddOrEven = { number: Int -> (number % 2 == 0) ? "Even" : "Odd" }
    print(oddOrEven(2))
}

Kotlin 中沒有三元運算符。 請參閱此處的討論。

if在 Kotlin 中是一個表達式(因此它可以返回一個值)並且您可以執行以下操作:

fun main() {
  val oddOrEven = { number: Int -> if(number % 2 == 0) "Even" else "Odd" }
  println(oddOrEven(2))
}

有一個特殊的運算符:

val x = if (y == null) -1 else x

以上可以簡寫為:

val x ?: -1

這稱為 Elvis 運算符 - 如果值為null則返回另一個值(在這種情況下為 -1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM