Կառուցեք ցանկը Iterators Linux- ի հետ «foreach» հրամանատարությամբ

Ծրագրման ժամանակ foreach հրամանն իրականացնում է հանգույց, որտեղ հանգույցի փոփոխականները ստանձնում են արժեքները մեկ կամ ավելի ցուցակներից: Ամենապարզ դեպքերում կա մեկ հանգույցի փոփոխական, անվանում , եւ մեկ ցուցակի ցանկ , որը արժեքների ցանկն է , որը նշանակում է վառնակին : Մարմնի փաստարկը Tcl- ի սցենար է: Ցանկի յուրաքանչյուր տարրի համար ( fore- to-last), foreach- ը տարրերի բովանդակությունը վերագրվում է որպես կախվածություն , կարծես lindex- ի հրամանը օգտագործվել է տարրը հանելու համար, այնուհետեւ զանգահարում է Tcl թարգմանչի մարմինը կատարելու համար:

Սինոփսիս

foreach վահանակի ցուցակը մարմինը
foreach varlist1 ցուցակ1 ? varlist2 list2 ... ? մարմինը

Քննարկում

Ընդհանուր դեպքում, կարող է լինել մեկից ավելի արժեքների ցուցակ (օրինակ, list1 եւ list2 ), եւ յուրաքանչյուր արժեքի ցանկ կարող է կապված լինել loop փոփոխականների ցանկի հետ (օրինակ, varlist1 եւ varlist2 ): Լոտի յուրաքանչյուր կրկնօրինակման ընթացքում յուրաքանչյուր ցուցակում առկա փոփոխականները նշանակվում են համապատասխան ցուցակից : Յուրաքանչյուր ցուցակի արժեքները օգտագործվում են առաջինից մինչեւ վերջին, եւ յուրաքանչյուր արժեքը մեկ անգամ օգտագործվում է: Ցիկլերի կրկնօրինակումների ընդհանուր քանակը բավական մեծ է, որպեսզի օգտագործեն բոլոր արժեքները բոլոր արժեքների ցուցակից: Եթե ​​արժեքների ցանկը չի պարունակում իր տարրական փոփոխականների յուրաքանչյուր տարր համար բավարար տարրեր, ապա բացակայում են կորցրած տարրերի դատարկ արժեքները:

Break եւ շարունակել հայտարարությունները կարող են ներթափանցվել մարմնի մեջ, նույն ազդեցությամբ, ինչպես հրամանը: Ֆիյակը վերադառնում է դատարկ տող:

Օրինակներ

Հետեւյալ հանգույցը օգտագործում է i եւ j, որպես հանգույցի փոփոխականներ, ընդլայնելու մի ցուցակների զույգ տարրերից:

x {} foreach {ij} {abcdef} {lappend x $ j $ i} # x- ի արժեքը «badcfe» # Կա loop- ի 3 վերամշակում:

Հաջորդ հանգույցն օգտագործում է i եւ j զուգահեռաբար կրկնօրինակելու երկու ցուցակները:

x {} foreach i {abc} j {defg} {lappend x $ i $ j} # x- ի արժեքը «adbecf {} g» # loop- ի 4 վերամշակումը:

Երկու ձեւերը միացված են հետեւյալ օրինակին:

{x} {jp} {defg} {x = i $ j $ k} # x- ի արժեքը `" adebfgc {} {} "# loop- ի 3 վերամշակում:

Նշումներ

Մի քանի հարակից հրամաններ աշխատում են foreach- ի հետ, ներառյալ `

Քանի որ Linux բաշխումը եւ միջուկի թողարկման մակարդակները տարբեր են, օգտագործեք մարդը հրամանը ( % մարդ ) տեսնել, թե ինչպես է հրամանն օգտագործվում հատուկ ձեր համակարգչում :