2017-03-07 187 views
14

也許有點寬泛的問題,但官方文檔甚至沒有提及作爲獨立實體的箭頭運算符(或語言構造,我不知道哪一個詞更準確)。Kotlin中的箭頭(「 - >」)操作符有什麼作用?

最明顯的用途是當條件語句,它是用來表達分配給特定的條件:

val greet = when(args[0]) { 
    "Appul" -> "howdy!" 
    "Orang" -> "wazzup?" 
    "Banan" -> "bonjur!" 
    else -> "hi!" 
    } 

    println(args[0] +" greets you: \""+ greet +"\"") 

什麼其他的用途,以及它們是什麼呢? Kotlin中是否有箭頭運算符的一般含義?

回答

16

->是科特林語法的一部分(類似於Java的lambda expressions syntax),可以在3個上下文中使用:

  • when表達式,其中它分離「匹配/條件」部分從「結果/執行」塊

    val greet = when(args[0]) { 
        "Apple", "Orange" -> "fruit" 
        is Number -> "How many?" 
        else -> "hi!" 
    } 
    
  • lambda表達式它從功能體分離參數

    val lambda = { a:String -> "hi!" } 
        items.filter { element -> element == "search" } 
    
  • 將參數類型從結果類型中分離出來的函數類型例如約科特林語法comparator

    fun <T> sort(comparator:(T,T) -> Int){ 
        } 
    

細節尤其是in the documentation

+4

可能是一個dding [函數類型](https://kotlinlang.org/docs/reference/lambdas.html#function-types)示例,並且引用的鏈接可能會改進此答案。 – hotkey

+2

現在有3個上下文,而不僅僅是2. – mfulton26

+0

感謝您的幫助和詳細的答案,夥計們。我會深入其他兩個。 –

相關問題