Массив — это систематическое расположение группы элементов с использованием индексов. Синтаксис для обычного массива показан ниже.
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
Итерация ассоциативного массива
Вы можете использовать индексы массива для итерации по ассоциативному массиву. Пример показан ниже.
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 foreach index [array names personA] { puts "personA($index): $personA($index)" }
Когда приведенный выше код выполняется, он дает следующий результат —