The ->
is part of Kotlin’s syntax (similar to Java’s lambda expressions syntax) and can be used in 3 contexts:
-
when
expressions where it separates “matching/condition” part from “result/execution” blockval greet = when(args[0]) { "Apple", "Orange" -> "fruit" is Number -> "How many?" else -> "hi!" }
-
lambda expressions where it separates parameters from function body
val lambda = { a:String -> "hi!" } items.filter { element -> element == "search" }
-
function types where it separates parameters types from result type e.g.
comparator
fun <T> sort(comparator:(T,T) -> Int){ }
Details about Kotlin grammar are in the documentation in particular: