Lambda disebut juga sebagai anonymous function, karena sifatnya yang tidak perlu mendeklarasikan fungsi. Perbedaan function dengan lambda adalah lambda langsung mengembalikan nilai tanpa perlu menggunakan keyword return. Contoh kode:
fun main () {
val sayHello = { name: String -> "Hello, I'm $name" }
println(sayHello("Andi")) // output : "Hello, I'm Andi"
}
Penulisan lambda juga bisa ditaruh di luar fungsi main. Karena lambda ini tidak perlu menggunakan return maka cara untuk membuat multilinenya adalah
fun main() {
val add = { num1: Int, num2: Int ->
val result = num1 + num2
result
}
println(add(5, 2)) // output : 7
}
Keyword it
It akan merujuk kepada parameter yang hanya berjumlah satu. Contoh :
fun main() {
// val getMessage: (String) -> String = { name: String -> "Hello from $name" }
val getMessage: (String) -> String = { "Hello from $it" }
val message: String = getMessage("Andi")
print(message) // output : Hello from Andi
}
Pada contoh diatas untuk membuat lambda getMessage
bisa menggunakan kode :
val getMessage: (String) -> String = { name: String -> "Hello from $name" }
Tapi karena lambda ini hanya memiliki satu parameter saja yaitu name
maka parameter bisa dihapus lalu untuk memanggil parameternya cukup menggunakan keyword it
.
val getMessage: (String) -> String = { "Hello from $it" }
Syarat untuk menggunakan keyword it adalah
- Parameter harus ada satu dan tidak boleh lebih
- Harus mendeklarasikan tipe datanya, pada contoh tipe data pada
getMessage
adalah(String) → String
Empty Parameter
Lambda bisa dibuat tanpa menggunakan parameter. Contohnya :
fun main() {
val sayHi = { "Hi world !" }
println(sayHi()) // output : Hi world !
}
Top comments (0)