Anonymous Functions
Anonymous Function adalah function yang tidak memiliki nama.
Anonymous Function memiliki konsep yang mirip dengan Lambda Expression, yaitu function dapat disimpan ke dalam variable dan dapat digunakan sebagai parameter pada Higher-Order Function.
Perbedaan utama terletak pada cara penulisannya.
Lambda menggunakan:
{
// kode
}
Sedangkan Anonymous Function menggunakan keyword:
fun
Contoh:
val upper = fun(value: String): String {
return value.uppercase()
}
Pada contoh tersebut, function tidak memiliki nama sehingga disebut Anonymous Function.
Perbedaan Lambda dan Anonymous Function
Lambda:
val upper = { value: String ->
value.uppercase()
}
Anonymous Function:
val upper = fun(value: String): String {
return value.uppercase()
}
Keduanya dapat digunakan sebagai function value.
Perbedaannya terdapat pada cara menentukan return value.
Return pada Lambda
Pada Lambda Expression, expression terakhir secara otomatis menjadi nilai yang dikembalikan.
Contoh:
val upper = { value: String ->
value.uppercase()
}
Expression terakhir:
value.uppercase()
secara otomatis menjadi return value.
Kita tidak perlu menuliskan:
return