Merusak Deklarasi di Kotlin

1. Ikhtisar

Dalam tutorial ini, kami akan memperkenalkan konsep Destructuring Declarations di Kotlin, dan melihat bagaimana itu dapat digunakan.

Jika Anda ingin mempelajari lebih lanjut tentang Kotlin, lihat artikel ini.

2. Deklarasi Penghancuran

Konsep ini terdiri dari memperlakukan objek sebagai satu set variabel terpisah.

2.1. Objek

Merusak suatu objek menjadi beberapa variabel dapat dilakukan dengan mudah:

val person = Person(1, "Jon Snow", 20) val(id, name, age) = person 

Dengan ini, kami telah membuat tiga variabel baru:

println(id) //1 println(name) //Jon Snow println(age) //20 

Deklarasi penghancuran disusun sebagai kode berikut:

val id = person.component1(); val name = person.component2(); val age = person.component3();

Untuk menggunakan deklarasi destrukturisasi, kita perlu memastikan apakah komponen tersebut ditandai dengan operator atau kelasnya ditandai dengan kata kunci data .

Untuk informasi lebih lanjut tentang Kelas Data di Kotlin, jangan lupa untuk memeriksa artikel ini .

2.2. Jenis Pengembalian

Deklarasi penghancuran juga dapat digunakan saat bekerja dengan nilai kembalian:

fun getPersonInfo() = Person(2, "Ned Stark", 45) val(id, name, age) = getPersonInfo()

Atau katakanlah kita perlu mengembalikan dua nilai dari sebuah fungsi:

fun twoValuesReturn(): Pair { // ... return Pair(1, "success") } val (result, status) = twoValuesReturn()

2.3. Koleksi dan For-loop

Iterasi koleksi dengan for-loops dapat dilakukan dengan deklarasi yang merusak, seperti ini:

for ((a, b) in collection) { ... } 

Variabel a dan b diberi nilai yang dikembalikan oleh metode component1 () dan component2 () - yang mengembalikan dua elemen pertama dalam sebuah koleksi.

Namun, dalam Map , variabelnya adalah key dan value, masing-masing:

var map: HashMap = HashMap() map.put(1, person) for((key, value) in map){ println("Key: $key, Value: $value") }

2.4. Menggarisbawahi dan Merusak di Lambdas

Jika kita tidak membutuhkan semua nilai yang diperoleh dalam deklarasi destrukturisasi, kita dapat menggunakan garis bawah sebagai ganti nama variabel:

val (_, name, age) = person

Atau, jika bidang yang tidak diperlukan berada di bagian akhir, kami dapat menghilangkannya sama sekali:

val (id, name) = person

Kita juga bisa menggunakan sintaks deklarasi destrukturisasi untuk parameter lambda, selama itu adalah tipe dengan fungsi componentN yang sesuai :

map.mapValues { entry -> "${entry.value}!" } map.mapValues { (key, value) -> "$value!" }

Waspadai perbedaan antara mendeklarasikan dua parameter dan mendeklarasikan pasangan destruktur:

{ a -> ... } // one parameter { a, b -> ... } // two parameters { (a, b) -> ... } // a destructured pair { (a, b), c -> ... } // a destructured pair and another parameter

3. Kesimpulan

Dalam artikel singkat ini, kita telah membahas Deklarasi Penghancuran di Kotlin, dengan banyak kegunaan dan kekhususannya.

Untuk mempelajari lebih lanjut tentang Kotlin, lihat artikel kami yang lain seperti Overview of Kotlin Collections API dan Data Classes yang sudah disebutkan di Kotlin .

Dan, seperti biasa, implementasi lengkap dari contoh-contoh ini dapat ditemukan di proyek GitHub kami.