Fungsi dari scope function adalah untuk mengelola object menggunakan lambda / fungsi ekstensi. Kegunaan ini adalah agar kode mudah dibaca karena memiliki scope masing-masing. Buat kode class terlebih dahulu untuk nanti dipakai lagi :
data class Product (
var name: String,
var price: Int
)
Jenis-jenis
Perlu diingat bahwa materi ini akan berkaitan erat dengan lambda bagi kamu yang belum tau apa itu lambda silahkan cek disini yaa :
Lebih Dekat Dengan Lambda di Kotlin
alfianandinugraha ・ Sep 1 '21 ・ 1 min read
Let
Let lambda memungkinkan untuk mengelola object sekaligus mengembalikan sesuatu. Let juga memiliki satu parameter yang nantinya juga bisa dialiaskan dengan keyword it
. Contoh kode :
fun main() {
val asus = Product("Asus", 6_000_000)
val description: String = asus.let { product ->
println(product.name)
println(product.price)
"Name ${product.name}, Price: Rp${product.price}"
}
println(description)
}
Run
Lambda ini hampir mirip dengan let yang membedakan adalah lambda ini tidak memiliki parameter jadi untuk mengakses objectnya menggunakan keyword this
. Contoh kode :
fun main() {
val lenovo = Product("Lenovo", 3_000_000)
val description: String = lenovo.run {
println(this.name)
println(this.price)
"Name ${this.name}, Price: Rp${this.price}"
}
println(description)
}
Also
Also memiliki 1 parameter dan mengembalikan nilai object itu sendiri. Contoh :
fun main() {
val msi = Product("MSI", 5_000_000)
val newMsi: Product = msi.also { product ->
println(product.name)
println(product.price)
}
}
Apply
Berbeda dengan sebelumnya, apply hanya mengembalikan nilai Object itu sendiri saja dan tidak memiliki paramater. Jadi untuk mengakses properti nya menggunakan keyword this
fun main() {
val hp = Product("HP", 4_000_000)
val newHp: Product = hp.apply {
println(this.name)
println(this.price)
}
}
Top comments (0)