Let, Run, Apply, & Also di Kotlin

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 Prod…


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)
}

Hasil output :
image

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)
}

Hasil output :
image

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)
    }
}

Hasil Output :
image

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)
    }
}

Hasil Output :
image


This content originally appeared on DEV Community and was authored by alfianandinugraha


Print Share Comment Cite Upload Translate Updates
APA

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/

MLA
" » Let, Run, Apply, & Also di Kotlin." alfianandinugraha | Sciencx - Saturday August 28, 2021, https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/
HARVARD
alfianandinugraha | Sciencx Saturday August 28, 2021 » Let, Run, Apply, & Also di Kotlin., viewed ,<https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/>
VANCOUVER
alfianandinugraha | Sciencx - » Let, Run, Apply, & Also di Kotlin. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/
CHICAGO
" » Let, Run, Apply, & Also di Kotlin." alfianandinugraha | Sciencx - Accessed . https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/
IEEE
" » Let, Run, Apply, & Also di Kotlin." alfianandinugraha | Sciencx [Online]. Available: https://www.scien.cx/2021/08/28/let-run-apply-also-di-kotlin/. [Accessed: ]
rf:citation
» Let, Run, Apply, & Also di Kotlin | alfianandinugraha | Sciencx | 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.

You must be logged in to translate posts. Please log in or register.