2017-03-07 18 views
14

Muhtemelen biraz geniş bir soru, ancak resmi belgeler, bağımsız bir varlık olarak ok operatöründen (veya dil yapısını, hangi ifadenin daha doğru olduğunu bilmiyorum) bile bahsetmiyor. Ya diğer kullanımlar vardır ve bunlar ne yapacaksınOk ("->") operatörü Kotlin'de ne yapıyor?

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

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

:

en belirgin kullanım belirli bir duruma bir ifade atamak için kullanıldığında koşullu deyim vardır? Kotlin'de ok operatörünün genel bir anlamı var mı?

cevap

16

-> (Java en lambda expressions syntax benzer) ve 3 bağlamlarda kullanılabilir KOTLIN en sözdizimi parçasıdır: o "sonuç/yürütme" bloktan "eşleştirme/koşul" bölümünü ayıran

  • when ifadeler o fonksiyonu vücuttan parametreleri ayıran

    val greet = when(args[0]) { 
        "Apple", "Orange" -> "fruit" 
        is Number -> "How many?" 
        else -> "hi!" 
    } 
    
  • lambda ifadeleri

    val lambda = { a:String -> "hi!" } 
        items.filter { element -> element == "search" } 
    
  • Parametre türlerini sonuç türünden ayıran işlev türleri örn. Kotlin dilbilgisi comparator

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

Detaylar özellikle in the documentation şunlardır: Muhtemelen

+4

[işlev türleri] (https://kotlinlang.org/docs/reference/lambdas.html#function-types) örneğini dding ve referans bağlantısı bu cevabı artırabilir. – hotkey

+2

Ve şimdi 3 bağlam var ve sadece 2 değil. – mfulton26

+0

Yardım ve ayrıntılı cevap için teşekkürler, çocuklar. Diğer ikisini de kazacağım. –