1. Pengenalan
Dalam tutorial ringkas ini, kita akan melihat cara untuk mengulang-ulang peta di Groovy menggunakan ciri bahasa standard seperti masing - masing , masing - masingWithIndex, dan loop masuk .
2. Kaedah masing - masing
Cuba bayangkan kita mempunyai peta berikut:
def map = [ 'FF0000' : 'Red', '00FF00' : 'Lime', '0000FF' : 'Blue', 'FFFF00' : 'Yellow' ]
Kami dapat melakukan perjalanan di atas peta dengan menyediakan setiap kaedah dengan penutupan sederhana:
map.each { println "Hex Code: $it.key = Color Name: $it.value" }
Kami juga dapat meningkatkan kebolehbacaan sedikit dengan memberikan nama kepada pemboleh ubah entri:
map.each { entry -> println "Hex Code: $entry.key = Color Name: $entry.value" }
Atau, jika kita lebih suka menyebut kunci dan nilai secara berasingan, kita boleh menyenaraikannya secara berasingan dalam penutupan kita:
map.each { key, val -> println "Hex Code: $key = Color Name $val" }
Di Groovy, peta yang dibuat dengan notasi harfiah disusun. Kami dapat menjangka output kami berada dalam urutan yang sama seperti yang kami tetapkan dalam peta asal kami.
3. Kaedah eachWithIndex
Kadang-kadang kita ingin mengetahui indeks semasa kita melakukan lelaran.
Sebagai contoh, katakan kita mahu memasukkan setiap baris lain dalam peta kita. Untuk melakukannya di Groovy, kami akan menggunakan kaedah masing - masingWithIndex dengan pemboleh ubah entri dan indeks :
map.eachWithIndex entry, index -> def indent = ((index == 0
Seperti setiap kaedah, kita boleh memilih untuk menggunakan pemboleh ubah kunci dan nilai dalam penutupan kita dan bukannya entri :
map.eachWithIndex key, val, index -> def indent = ((index == 0
4. Menggunakan Gelung For-in
Sebaliknya, jika kes penggunaan kita lebih baik untuk pengaturcaraan penting, kita juga dapat menggunakan pernyataan masuk untuk mengulangi peta kita:
for (entry in map) { println "Hex Code: $entry.key = Color Name: $entry.value" }
5. Kesimpulan
Dalam tutorial ringkas ini, kami belajar bagaimana mengulang peta menggunakan kaedah Groovy masing - masing dan kaedahWithIndex dan gelung masuk .
Kod contoh boleh didapati di GitHub.