Tcl - อาร์เรย์

อาร์เรย์คือการจัดเรียงกลุ่มขององค์ประกอบอย่างเป็นระบบโดยใช้ดัชนี ไวยากรณ์สำหรับอาร์เรย์ธรรมดาแสดงอยู่ด้านล่าง

set ArrayName(Index) value

ตัวอย่างการสร้างอาร์เรย์อย่างง่ายแสดงอยู่ด้านล่าง

#!/usr/bin/tclsh

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

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Tcl
C Language

ขนาดของอาร์เรย์

ไวยากรณ์สำหรับการคำนวณขนาดอาร์เรย์แสดงไว้ด้านล่าง

[array size variablename]

ตัวอย่างการพิมพ์ขนาดดังแสดงด้านล่าง

#!/usr/bin/tclsh

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

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

2

การทำซ้ำอาร์เรย์

แม้ว่าดัชนีอาร์เรย์อาจไม่ต่อเนื่องเหมือนค่าที่ระบุสำหรับดัชนี 1 จากนั้นดัชนี 10 เป็นต้น แต่ในกรณีที่ต่อเนื่องกันเราสามารถใช้การวนซ้ำอาร์เรย์เพื่อเข้าถึงองค์ประกอบของอาร์เรย์ได้ การทำซ้ำอาร์เรย์อย่างง่ายสำหรับการพิมพ์องค์ประกอบของอาร์เรย์แสดงอยู่ด้านล่าง

#!/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)"
}

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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

อาร์เรย์เชื่อมโยง

ใน Tcl อาร์เรย์ทั้งหมดโดยธรรมชาติจะเชื่อมโยงกัน อาร์เรย์จะถูกจัดเก็บและเรียกค้นโดยไม่มีลำดับที่เฉพาะเจาะจง อาร์เรย์ที่เชื่อมโยงมีดัชนีที่ไม่จำเป็นต้องเป็นตัวเลขและอาจมีประชากรเบาบาง ตัวอย่างง่ายๆสำหรับการเชื่อมโยงอาร์เรย์กับดัชนีที่ไม่ใช่ตัวเลขแสดงอยู่ด้านล่าง

#!/usr/bin/tclsh

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

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Dave
14

ดัชนีของอาร์เรย์

ไวยากรณ์สำหรับการดึงดัชนีของอาร์เรย์แสดงอยู่ด้านล่าง

[array names variablename]

ตัวอย่างการพิมพ์ขนาดดังแสดงด้านล่าง

#!/usr/bin/tclsh

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

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Age Name

การทำซ้ำของ Associative Array

คุณสามารถใช้ดัชนีของอาร์เรย์เพื่อวนซ้ำผ่านอาร์เรย์ที่เชื่อมโยงกัน ตัวอย่างแสดงด้านล่าง

#!/usr/bin/tclsh

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

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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