Tcl - Mảng

Mảng là sự sắp xếp có hệ thống của một nhóm các phần tử sử dụng các chỉ số. Cú pháp cho mảng thông thường được hiển thị bên dưới.

set ArrayName(Index) value

Dưới đây là một ví dụ để tạo mảng đơn giản.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
puts $languages(0)
puts $languages(1)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Tcl
C Language

Kích thước của mảng

Cú pháp để tính toán mảng kích thước được hiển thị bên dưới.

[array size variablename]

Ví dụ về kích thước in được hiển thị bên dưới.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
puts  [array size languages]

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

2

Lặp lại mảng

Mặc dù vậy, các chỉ số mảng có thể không liên tục giống như các giá trị được chỉ định cho chỉ mục 1 rồi đến chỉ mục 10, v.v. Nhưng, trong trường hợp chúng liên tục, chúng ta có thể sử dụng phép lặp mảng để truy cập các phần tử của mảng. Một phép lặp mảng đơn giản để in các phần tử của mảng được hiển thị bên dưới.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
for { set index 0 }  { $index < [array size languages] }  { incr index } {
   puts "languages($index) : $languages($index)"
}

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

languages(0) : Tcl
languages(1) : C Language

Mảng liên kết

Trong Tcl, tất cả các mảng về bản chất là liên kết. Mảng được lưu trữ và truy xuất mà không có bất kỳ thứ tự cụ thể nào. Mảng liên kết có chỉ mục không nhất thiết phải là một số và có thể được điền thưa thớt. Dưới đây là một ví dụ đơn giản cho mảng kết hợp với các chỉ số không phải là số.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
puts  $personA(Name)
puts  $personA(Age)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Dave
14

Chỉ số của mảng

Cú pháp để lấy các chỉ số của mảng được hiển thị bên dưới.

[array names variablename]

Ví dụ về kích thước in được hiển thị bên dưới.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
puts [array names personA]

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Age Name

Lặp lại mảng liên kết

Bạn có thể sử dụng các chỉ số của mảng để lặp qua mảng kết hợp. Một ví dụ đã được biểu diễn ở dưới.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
foreach index [array names personA] {
   puts "personA($index): $personA($index)"
}

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

personA(Age): 14
personA(Name): Dave