בניית רשימה Iterators עם לינוקס "foreach" פקודה

בעת תכנות , הפקודה foreach מיישמת לולאה שבה משתני לולאה להניח את הערכים מרשימה אחת או יותר. במקרה הפשוט ביותר יש משתנה לולאה אחת, varname ורשימה אחת, רשימה , שהיא רשימה של ערכים להקצאה ל - varname . טיעון הגוף הוא סקריפט Tcl. עבור כל רכיב של רשימה (לפי סדר ראשון עד אחרון), foreach מקצה את התוכן של אלמנט כדי varname כאילו הפקודה lindex שימשו לחלץ את האלמנט, ואז קורא המתורגמן TCL לבצע הגוף .

תַקצִיר

עבור גוף רשימת varname
List1 varlist1 foreach? רשימה רשימה 2 ... ? גוּף

דִיוּן

במקרה כללי, יכולה להיות יותר מרשימת ערכים אחת (למשל, רשימה 1 ורשימה 2 ), וכל רשימת ערכים יכולה להיות קשורה לרשימה של משתני לולאה (לדוגמה, varlist1 ו- varlist2 ). במהלך כל איטרציה של הלולאה, המשתנים של כל varlist מוקצים ערכים רצופים מהרשימה המתאימה. הערכים בכל רשימה משמשים לפי סדר ראשון ועד אחרון, וכל ערך משמש בדיוק פעם אחת. המספר הכולל של חזרות לולאה הוא גדול מספיק כדי להשתמש בכל הערכים מכל רשימות ערכים. אם רשימת ערכים אינה מכילה מספיק רכיבים עבור כל אחד ממשתני הלולאה שלה בכל איטרציה, ערכים ריקים משמשים עבור האלמנטים החסרים.

הצהרות ההפסקה וההמשך יכולות להופיע בתוך הגוף , עם אותו אפקט כמו בפקודה for . ה- feeach מחזירה מחרוזת ריקה.

דוגמאות

הלולאה הבאה משתמשת i ו- j כמו משתנים לולאה כדי לחזור על זוגות של אלמנטים של רשימה אחת.

בחר את הערך של x הוא "badcfe" # יש 3 חזרות של הלולאה.

לולאה הבאה משתמשת i ו- j כדי לחזור על שתי רשימות במקביל.

בחר את הערך x = {abc} j {defg} {lappend x $ i $ $ j} # הערך של x הוא "adbecf {} g" # יש 4 חזרות של הלולאה.

שתי הצורות משולבות בדוגמה הבאה.

בחר את ה - x {{abc} {jk} {defg} {lappend x $ i $ j $ $ k} # הערך של x הוא "adebfgc {} {#" # # יש 3 חזרות של הלולאה.

הערות

מספר פקודות קשורות לעבודה עם foreach כולל:

מכיוון שרמת ההפצה של לינוקס ושחרור הליבה משתנה, השתמש בפקודת הגבר ( % man ) כדי לראות כיצד פקודה משמשת במיוחד במחשב שלך.