2017-11-02 1 views
1

Ich bin Anfänger in Kotlin. Wie erklären Sie das folgende Code-Snippet?Kotlin - forEach

fun main(args: Array<String>) { 

    var k = listOf<Double>(1.2,77.8,6.3,988.88,0.1) 

     k.forEach(::println) 
} 

Dies läuft gut und die Liste gibt aber jemand mit der Erklärung bitte helfen wie funktioniert k.forEach (:: println) wirklich?

Antwort

6

forEach nimmt jedes Element in k und tut was Sie angeben, es zu tun. In Ihrem Beispiel lautet das Argument "what" ::println, was sich auf die Funktion stdlib println(message: Any) bezieht. Die :: führte eine function reference für diese Funktion ein. Jedes Element wird als Argument message an println übergeben und somit auf der Konsole ausgedruckt.

Um es deutlich zu machen, könnten Sie eine Lambda statt die Funktionsreferenz wie dies passieren:

k.forEach{ 
    println(it) 
}