Tcl-tk-tcl-arrays

提供:Dev Guides
移動先:案内検索

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

連想配列の反復

配列のインデックスを使用して、連想配列を反復処理できます。 例を以下に示します。

#!/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