Xây dựng danh sách Iterators Với lệnh "foreach" Linux

Khi lập trình , lệnh foreach thực hiện một vòng lặp nơi các biến vòng lặp giả sử các giá trị từ một hoặc nhiều danh sách. Trong trường hợp đơn giản nhất có một biến vòng lặp, varname và một danh sách, danh sách , đó là danh sách các giá trị để gán cho varname . Đối số cơ thể là một tập lệnh Tcl. Đối với mỗi phần tử của danh sách (theo thứ tự từ đầu đến cuối), foreach gán nội dung của phần tử cho varname như thể lệnh lindex đã được sử dụng để trích xuất phần tử, sau đó gọi trình thông dịch Tcl để thi hành phần thân .

Tóm tắc

foreach cơ thể danh sách varname
foreach varlist1 list1 ? varlist2 list2 ... ? thân hình

Thảo luận

Trong một trường hợp tổng quát, có thể có nhiều hơn một danh sách giá trị (ví dụ, list1list2 ), và mỗi danh sách giá trị có thể được liên kết với một danh sách các biến vòng lặp (vd varlist1varlist2 ). Trong mỗi lần lặp của vòng lặp, các biến của mỗi varlist được gán giá trị liên tiếp từ danh sách tương ứng. Giá trị trong mỗi danh sách được sử dụng theo thứ tự từ đầu đến cuối và mỗi giá trị được sử dụng chính xác một lần. Tổng số vòng lặp lặp lại đủ lớn để sử dụng hết tất cả các giá trị từ tất cả các danh sách giá trị. Nếu một danh sách giá trị không chứa đủ các phần tử cho mỗi biến vòng lặp của nó trong mỗi lần lặp, các giá trị rỗng được sử dụng cho các phần tử bị thiếu.

Các câu lệnh breakcontinue có thể được gọi bên trong cơ thể , với hiệu ứng tương tự như trong lệnh for . F oreach trả về một chuỗi rỗng.

Ví dụ

Vòng lặp sau sử dụng ij làm các biến vòng lặp để lặp qua các cặp phần tử của một danh sách duy nhất.

set x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Giá trị của x là "badcfe" # Có 3 lần lặp của vòng lặp.

Vòng lặp tiếp theo sử dụng ij để lặp qua hai danh sách song song.

set x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Giá trị của x là "adbecf {} g" # Có 4 lần lặp của vòng lặp.

Hai dạng được kết hợp trong ví dụ sau.

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Giá trị của x là "adebfgc {} {}" # Có 3 lần lặp của vòng lặp.

Ghi chú

Một số lệnh liên quan làm việc với foreach bao gồm:

Vì mức phân phối Linux và mức phát hành hạt nhân khác nhau, hãy sử dụng lệnh man ( % man ) để xem cách một lệnh được sử dụng cụ thể trên máy tính cụ thể của bạn.