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)