Tcl-tk-tcl-data-types
Tcl-データ型
Tclのプリミティブデータ型は文字列であり、多くの場合、文字列のみの言語としてTclで引用符を見つけることができます。 これらのプリミティブデータ型は、リストおよび連想配列の複合データ型を作成します。 Tclでは、データ型は単純なTclオブジェクトだけでなく、ハンドル、グラフィックオブジェクト(主にウィジェット)、I/Oチャネルなどの複雑なオブジェクトも表すことができます。 上記のそれぞれの詳細を見てみましょう。
シンプルなTclオブジェクト
Tclでは、整数、ブール、浮動小数点数、または文字列のいずれかです。 変数を使用する場合、値を直接割り当てることができます。Tclには宣言のステップはありません。 これらのさまざまなタイプのオブジェクトには、内部表現があります。 必要に応じて、あるデータ型を別のデータ型に変換できます。 変数に値を割り当てるための構文は次のとおりです-
#!/usr/bin/tclsh
set myVariable 18
puts $myVariable
上記のコードが実行されると、次の結果が生成されます-
18
上記のステートメントは、変数名myVariableを作成し、それを文字列として保存しますが、二重引用符は使用していません。 ここで、変数に対して算術演算を行おうとすると、変数は自動的に整数に変わります。 簡単な例を以下に示します-
#!/usr/bin/tclsh
set myVariable 18
puts [expr $myVariable + 6 + 9]
上記のコードが実行されると、次の結果が生成されます-
33
注意すべき重要な点は、これらの変数にはデフォルト値がなく、使用する前に値を割り当てる必要があるということです。
putsを使用して印刷しようとすると、数値は適切な文字列に変換されます。 内部と外部の2つの表現があるため、Tclは他の言語と比較して複雑なデータ構造を簡単に作成できます。 また、Tclは動的オブジェクトの性質により、より効率的です。
文字列表現
他の言語とは異なり、Tclでは、単一の単語の場合に二重引用符を含める必要はありません。 例は次のとおりです-
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
上記のコードが実行されると、次の結果が生成されます-
hello
複数の文字列を表現する場合は、二重引用符または中括弧を使用できます。 以下に示されています-
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable
上記のコードが実行されると、次の結果が生成されます-
hello world
hello world
List
リストは要素のグループにすぎません。 二重引用符または中括弧のいずれかを使用する単語のグループを使用して、単純なリストを表すことができます。 簡単なリストを以下に示します-
#!/usr/bin/tclsh
set myVariable {red green blue}
puts [lindex $myVariable 2]
set myVariable "red green blue"
puts [lindex $myVariable 1]
上記のコードが実行されると、次の結果が生成されます-
blue
green
連想配列
連想配列には、必ずしも整数ではないインデックス(キー)があります。 通常、キーと値のペアのように機能する文字列です。 簡単な例を以下に示します-
#!/usr/bin/tclsh
set marks(english) 80
puts $marks(english)
set marks(mathematics) 90
puts $marks(mathematics)
上記のコードが実行されると、次の結果が生成されます-
80
90
ハンドル
Tclハンドルは、一般的にファイルとグラフィックスオブジェクトを表すために使用されます。 これらには、ネットワーク要求へのハンドルや、シリアルポート通信、ソケット、I/Oデバイスなどの他のチャネルも含まれます。 以下は、ファイルハンドルが作成される例です。
set myfile [open "filename" r]
ファイルの詳細については、リンク:/tcl-tk/tcl_file_io [TclファイルI/O]の章を参照してください。