Tcl - Danh sách
Danh sách là một trong những kiểu dữ liệu cơ bản có sẵn trong Tcl. Nó được sử dụng để đại diện cho một bộ sưu tập các mặt hàng có thứ tự. Nó có thể bao gồm các loại mục khác nhau trong cùng một danh sách. Hơn nữa, một danh sách có thể chứa một danh sách khác.
Một điều quan trọng cần lưu ý là các danh sách này được biểu diễn dưới dạng chuỗi hoàn toàn và được xử lý để tạo thành các mục riêng lẻ khi được yêu cầu. Vì vậy, hãy tránh những danh sách lớn và trong những trường hợp như vậy; sử dụng mảng.
Tạo danh sách
Cú pháp chung cho danh sách được đưa ra dưới đây:
set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or
set listName [split "items separated by a character" split_character]
Một số ví dụ được đưa ra dưới đây -
#!/usr/bin/tclsh
set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1
puts $colorList2
puts $colorList3
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
red green blue
red green blue
red green blue
Nối Mục vào Danh sách
Cú pháp để thêm mục vào danh sách được đưa ra dưới đây:
append listName split_character value
# or
lappend listName value
Một số ví dụ được đưa ra dưới đây -
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red"
lappend var "green"
puts $var
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
orange blue red green
Độ dài của danh sách
Cú pháp cho độ dài của danh sách được đưa ra dưới đây:
llength listName
Ví dụ về độ dài của danh sách được đưa ra dưới đây:
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
4
Liệt kê Mục tại Chỉ mục
Cú pháp để chọn mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:
lindex listname index
Ví dụ cho mục danh sách tại chỉ mục được đưa ra dưới đây:
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var 1]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
blue
Chèn mục vào chỉ mục
Cú pháp để chèn các mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây.
linsert listname index value1 value2..valuen
Ví dụ để chèn mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
orange blue red black white green
Thay thế các mục tại chỉ số
Cú pháp để thay thế các mục danh sách tại các chỉ mục cụ thể được đưa ra dưới đây:
lreplace listname firstindex lastindex value1 value2..valuen
Ví dụ để thay thế các mục danh sách tại các chỉ mục cụ thể được đưa ra dưới đây.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
orange blue black white
Đặt mục tại chỉ mục
Cú pháp để thiết lập mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:
lset listname index value
Ví dụ để thiết lập mục danh sách tại chỉ mục cụ thể được đưa ra dưới đây:
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black
puts $var
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
black blue red green
Chuyển đổi danh sách thành các biến
Cú pháp để sao chép giá trị vào biến được đưa ra dưới đây:
lassign listname variable1 variable2.. variablen
Ví dụ để chuyển đổi danh sách thành các biến được đưa ra dưới đây:
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
orange
blue
Sắp xếp một danh sách
Cú pháp sắp xếp danh sách được đưa ra dưới đây:
lsort listname
Dưới đây là một ví dụ để sắp xếp danh sách:
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var]
puts $var
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
blue green orange red