بناء قائمة المتكررون مع لينكس "foreach" القيادة

عند البرمجة ، يقوم الأمر foreach بتنفيذ حلقة حيث تفترض متغيرات الحلقة القيم من قائمة أو أكثر. في أبسط الحالات ، يوجد متغير حلقة واحد ، و varname ، وقائمة واحدة ، وقائمة ، وهي قائمة قيم لتعيينها إلى varname . حجة الجسم هي نص TCL. لكل عنصر من عناصر القائمة (بالترتيب من الأول إلى الأخير) ، يقوم foreach بتعيين محتويات العنصر إلى varname كما لو كان قد تم استخدام أمر lindex لاستخراج العنصر ، ثم يقوم باستدعاء مترجم Tcl لتنفيذ النص.

ملخص

foreach قائمة قائمة الاسم
foreach varlist1 list1 ؟ varlist2 list2 ... ؟ الجسم

نقاش

في الحالة العامة ، يمكن أن يكون هناك أكثر من قائمة قيم واحدة (على سبيل المثال ، list1 والقائمة 2 ) ، ويمكن ربط كل قائمة قيم بقائمة متغيرات الحلقة (على سبيل المثال varlist1 و varlist2 ). خلال كل تكرار للحلقة ، يتم تعيين متغيرات كل قائمة من القيم المتتالية من القائمة المقابلة. يتم استخدام القيم في كل قائمة بالترتيب من الأول إلى الأخير ، ويتم استخدام كل قيمة مرة واحدة بالضبط. إجمالي عدد مرات تكرار الحلقة كبير بما يكفي لاستخدام جميع القيم من جميع قوائم القيم. إذا كانت قائمة القيم لا تحتوي على عناصر كافية لكل متغير من متغيراتها في كل تكرار ، يتم استخدام القيم الفارغة للعناصر المفقودة.

قد يتم استدعاء الفاصل ومتابعة البيانات داخل الجسم ، مع نفس التأثير كما في الأمر. إرجاع أو oreach سلسلة فارغة.

أمثلة

تستخدم الحلقة التالية i و j كمتغيرات حلقة للتكرار عبر أزواج عناصر قائمة واحدة.

set x {} foreach {ij} {abcdef} {lappend x $ j $ i} # قيمة x هي "badcfe" # هناك 3 تكرار للحلقة.

تستخدم الحلقة التالية i و j للتكرار عبر قائمتين في نفس الوقت.

set x {} foreach i {abc} j {defg} {lappend x $ i $ j} # قيمة x هي "adbecf {} g" # يوجد 4 تكرار للحلقة.

يتم الجمع بين النموذجين في المثال التالي.

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # قيمة x هي "adebfgc {} {}" # توجد 3 تكرار للحلقة.

ملاحظات

تعمل العديد من الأوامر ذات الصلة مع foreach بما في ذلك:

نظرًا لتفاوت مستويات توزيع نواة لينكس ونطاقها ، استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام الأمر على وجه الخصوص لجهاز الكمبيوتر الخاص بك.