Bangun List Iterators Dengan Perintah Linux "foreach"

Ketika memprogram , perintah foreach mengimplementasikan suatu loop di mana variabel loop mengasumsikan nilai dari satu atau lebih daftar. Dalam kasus yang paling sederhana ada satu variabel loop, varname , dan satu daftar, daftar , yaitu daftar nilai untuk ditetapkan ke varname . Argumen bodi adalah skrip Tcl. Untuk setiap elemen dari daftar (dalam urutan dari awal hingga akhir), foreach memberikan isi dari elemen tersebut ke varname seolah-olah perintah lindex telah digunakan untuk mengekstrak elemen, kemudian memanggil interpreter Tcl untuk mengeksekusi tubuh .

Ringkasan

foreach varname list body
foreach varlist1 list1 ? varlist2 list2 ... ? tubuh

Diskusi

Dalam kasus umum, bisa ada lebih dari satu daftar nilai (misalnya, list1 dan list2 ), dan setiap daftar nilai dapat dikaitkan dengan daftar variabel loop (misalnya, varlist1 dan varlist2 ). Selama setiap iterasi loop, variabel masing-masing varlist diberi nilai yang berurutan dari daftar terkait. Nilai dalam setiap daftar digunakan dari urutan pertama hingga terakhir, dan setiap nilai digunakan tepat satu kali. Jumlah iterasi loop cukup besar untuk menggunakan semua nilai dari semua daftar nilai. Jika daftar nilai tidak mengandung cukup elemen untuk setiap variabel pengulangannya dalam setiap iterasi, nilai kosong digunakan untuk elemen yang hilang.

Pernyataan break dan continue dapat dipanggil di dalam tubuh , dengan efek yang sama seperti pada perintah. The oreach mengembalikan string kosong.

Contoh

Loop berikut menggunakan i dan j sebagai variabel loop untuk mengulang lebih dari pasangan elemen dari daftar tunggal.

atur x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Nilai x adalah "badcfe" # Ada 3 iterasi loop.

Loop selanjutnya menggunakan i dan j untuk mengulang lebih dari dua daftar secara paralel.

setel x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Nilai x adalah "adbecf {} g" # Ada 4 iterasi loop.

Kedua bentuk tersebut digabungkan dalam contoh berikut.

atur x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Nilai x adalah "adebfgc {} {}" # Ada 3 iterasi loop.

Catatan

Beberapa perintah terkait bekerja dengan foreach termasuk:

Karena distribusi Linux dan tingkat rilis kernel bervariasi, gunakan perintah man ( % man ) untuk melihat bagaimana sebuah perintah digunakan secara khusus pada komputer Anda .