This content originally appeared on DEV Community and was authored by alfianandinugraha
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
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)
}
}
This content originally appeared on DEV Community and was authored by alfianandinugraha
alfianandinugraha | Sciencx (2021-08-28T11:15:51+00:00) Let, Run, Apply, & Also di Kotlin. Retrieved from https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.