Bina Senarai Iterator Dengan Perintah Linux "foreach"

Apabila pengaturcaraan , arahan foreach mengimplementasikan gelung di mana pembolehubah gelung menganggap nilai dari satu atau lebih senarai. Dalam kes yang paling mudah terdapat satu pemboleh ubah gelung, varname , dan satu senarai, senarai , yang merupakan senarai nilai yang ditetapkan untuk varname . Hujah tubuh adalah skrip Tcl. Untuk setiap elemen senarai (dari awal hingga akhir), foreach menyerahkan kandungan unsur ke varname seolah-olah perintah lindex telah digunakan untuk mengekstrak elemen tersebut, kemudian memanggil penterjemah Tcl untuk menjalankan badan .

Sinopsis

foreach varname list body
foreach varlist1 list1 ? senarai varlist2 ... ? badan

Perbincangan

Dalam kes umum, terdapat lebih daripada satu senarai nilai (misalnya, list1 dan list2 ), dan setiap senarai nilai boleh dikaitkan dengan senarai pembolehubah gelung (contohnya, varlist1 dan varlist2 ). Semasa setiap lelaran gelung, pembolehubah setiap varlist diberikan nilai berturut-turut dari senarai yang sepadan. Nilai dalam setiap senarai digunakan dalam urutan dari pertama hingga terakhir, dan setiap nilai digunakan tepat sekali. Jumlah lelaran gelung cukup besar untuk menggunakan semua nilai dari semua senarai nilai. Jika senarai nilai tidak mengandungi elemen yang cukup untuk setiap pembolehubah gelungnya dalam setiap lelaran, nilai kosong digunakan untuk elemen yang hilang.

Istirahat dan meneruskan kenyataan boleh dipanggil di dalam tubuh , dengan kesan yang sama seperti dalam arahan. F oreach mengembalikan tali kosong.

Contoh

Gelung berikut menggunakan i dan j sebagai pemboleh ubah gelung untuk melaraskan pasangan pasang elemen senarai tunggal.

tetapkan x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Nilai x adalah "badcfe" # Terdapat 3 lelaran gelung.

Gelung seterusnya menggunakan i dan j untuk melaraskan dua senarai secara selari.

tetapkan x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Nilai x adalah "adbecf {} g" # Terdapat 4 lelaran gelung.

Kedua-dua bentuk digabungkan dalam contoh berikut.

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Nilai x adalah "adebfgc {} {}" # Terdapat 3 lelaran gelung.

Nota

Beberapa arahan yang berkaitan dengan kerja keras termasuk:

Oleh kerana pengagihan Linux dan tahap pelepasan kernel berbeza-beza, gunakan arahan lelaki ( % man ) untuk melihat bagaimana arahan khusus digunakan pada komputer tertentu anda.