Pengisytiharan yang merosakkan di Kotlin

1. Gambaran keseluruhan

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

Sekiranya anda ingin mengetahui lebih lanjut mengenai Kotlin, baca artikel ini.

2. Deklarasi Merosakkan

Konsep ini terdiri daripada memperlakukan objek sebagai satu set pemboleh ubah yang terpisah.

2.1. Objek

Menghancurkan objek menjadi beberapa pemboleh ubah boleh dilakukan:

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

Dengan ini, kami telah mencipta tiga pemboleh ubah baru:

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

Deklarasi pemusnahan disusun sebagai kod berikut:

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

Untuk menggunakan pernyataan pemusnahan, kita perlu memastikan sama ada komponen tersebut ditandai dengan operator atau kelas ditandai dengan kata kunci data .

Untuk maklumat lebih lanjut mengenai Kelas Data di Kotlin, jangan lupa untuk membaca artikel ini .

2.2. Jenis Pulangan

Deklarasi penghancuran juga dapat digunakan ketika bekerja dengan nilai kembali:

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

Atau katakan kita perlu mengembalikan dua nilai dari fungsi:

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

2.3. Koleksi dan gelung untuk

Ulangi koleksi dengan for-loop dapat dilakukan dengan pernyataan yang merosakkan, seperti ini:

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

Pemboleh ubah a dan b diberi nilai yang dikembalikan oleh kaedah komponen1 () dan komponen2 () - yang mengembalikan dua elemen pertama dalam koleksi.

Walau bagaimanapun, dalam Peta , pemboleh ubah adalah kunci dan nilai, masing-masing:

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

2.4. Garis bawah dan Pemusnahan di Lambdas

Sekiranya kita tidak memerlukan semua nilai yang diperoleh dalam deklarasi pemusnahan, kita boleh menggunakan garis bawah dan bukannya nama pemboleh ubah:

val (_, name, age) = person

Atau, jika bidang yang tidak diperlukan ada di hujungnya, kita boleh menghilangkannya sama sekali:

val (id, name) = person

Kita juga dapat menggunakan sintaks deklarasi yang merosakkan untuk parameter lambda, asalkan itu adalah jenis dengan fungsi komponenN yang sesuai :

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

Ketahui perbezaan antara menyatakan dua parameter dan menyatakan pasangan yang merosakkan:

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

3. Kesimpulannya

Dalam artikel ringkas ini, kami telah menghampiri Deklarasi Merusak di Kotlin, dengan banyak kegunaan dan keistimewaannya.

Untuk mengetahui lebih lanjut mengenai Kotlin, pastinya, baca artikel kami yang lain seperti Gambaran Keseluruhan Koleksi API Kotlin dan Kelas Data yang telah disebutkan di Kotlin .

Dan, seperti biasa, pelaksanaan penuh contoh-contoh ini terdapat dalam projek GitHub kami.