Bagaimana cara mendapatkan indeks untuk setiap loop? Saya ingin mencetak angka untuk setiap iterasi kedua
Sebagai contoh
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
Di java, kita memiliki tradisional untuk loop
for (int i = 0; i < collection.length; i++)
Bagaimana cara mendapatkannya i
?
Jawaban:
Selain solusi yang diberikan oleh @Audi, ada juga
forEachIndexed
:sumber
break
di dalam?return@forEachIndexed
yang pada dasarnya akan berfungsi sebagaicontinue
untuk melompat ke elemen berikutnya. Jika Anda perlu istirahat, Anda harus membungkusnya dalam suatu fungsi, dan gunakanreturn
dalam loop untuk kembali dari fungsi terlampir itu.Menggunakan
indices
Jika Anda ingin nilai serta Penggunaan indeks
withIndex()
Referensi: Aliran kontrol di kotlin
sumber
coba ini; untuk loop
sumber
Atau, Anda dapat menggunakan
withIndex
fungsi perpustakaan:sumber
Tampaknya apa yang benar-benar Anda cari adalah
filterIndexed
Sebagai contoh:
Hasil:
sumber
.forEach(::println)
Rentang juga menyebabkan kode dapat dibaca dalam situasi seperti ini:
sumber
(0..collection.lastIndex step 2)