با استفاده از فرمان "foreach" لینوکس، Iterators را ایجاد کنید

هنگام برنامه نویسی ، فرمان foreach یک حلقه را اجرا می کند که در آن متغیرهای حلقه ارزش ها را از یک یا چند لیست در نظر می گیرند. در ساده ترین حالت یک متغیر حلقه وجود دارد، varname و یک لیست، لیستی از مقادیر برای اختصاص به varname وجود دارد . استدلال بدن یک اسکریپت Tcl است. برای هر عنصر از لیست (به ترتیب از اول تا آخرین)، foreach محتویات عنصر را به varname اختصاص می دهد به شرط اینکه اگر دستور lindex برای استخراج عنصر مورد استفاده قرار گیرد، سپس مترجم Tcl برای اجرای بدن را فراخوانی می کند .

خلاصه داستان

foreach varname body لیست
foreach varlist1 list1 ؟ varlist2 list2 ... ؟ بدن

بحث

در یک مورد کلی، می تواند بیش از یک لیست ارزش (به عنوان مثال، لیست 1 و لیست 2 ) وجود داشته باشد، و هر لیست ارزش می تواند با یک لیست از متغیر حلقه (به عنوان مثال، varlist1 و varlist2 ) مرتبط است. در طی هر تکرار حلقه، متغیرهای هر فهرست به مقادیر متوالی از لیست مربوطه اختصاص می یابد . ارزش ها در هر لیست به ترتیب از اول تا آخر استفاده می شوند و هر مقدار دقیقا یکبار استفاده می شود. تعداد کل تکرار حلقه ها به اندازه کافی بزرگ است تا تمام مقادیر را از همه لیست های ارزش استفاده کند. اگر لیست ارزش شامل عناصر به اندازه کافی برای هر یک از متغیرهای حلقه خود را در هر تکرار نیست، مقدار خالی برای عناصر گم شده استفاده می شود.

دستور العمل های شکستن و ادامه می تواند درون بدن اعمال شود ، با همان تاثیری که در فرمان انجام می شود. f oreach یک رشته خالی را باز می کند.

مثال ها

حلقه زیر از i و j به عنوان متغیرهای حلقه استفاده می کند تا تکرار بیش از جفت عناصر یک لیست واحد باشد.

مجموعه x {} foreach {ij} {abcdef} {مقداردهی x $ j $ i} # مقدار x است badcfe # 3 تکرار حلقه وجود دارد.

حلقه بعدی از i و j استفاده می کند تا به صورت موازی دو لیست را تکرار کند.

مجموعه x {} foreach i {abc} j {defg} {مقداردهی x $ i $ j} # مقدار x adbecf {} g است # 4 تکرار حلقه وجود دارد.

دو فرم در مثال زیر ترکیب شده است.

مجموعه ای از x {} foreach i {abc} {jk} {defg} {مقداردهی x $ i $ j $ k} # مقدار x است adebfgc {} {} "# 3 تکرار حلقه وجود دارد.

یادداشت

چندین فرمان مرتبط با پیش زمینه کار می کند از جمله:

از آنجا که توزیع لینوکس و سطوح انتشار هسته ای متفاوت هستند، از دستور man ( ٪ man ) استفاده کنید تا ببینید که چگونه یک دستور به طور خاص در رایانه خاص شما مورد استفاده قرار می گیرد.