Tcl-変数
Tclには、変数宣言の概念はありません。新しい変数名が見つかると、Tclは新しい変数を定義します。
変数の命名
変数の名前には、任意の文字と長さを含めることができます。変数を中括弧で囲むことで空白を含めることもできますが、これはお勧めできません。
setコマンドは、変数に値を割り当てるために使用されます。setコマンドの構文は次のとおりです。
set variableName value
変数のいくつかの例を以下に示します-
#!/usr/bin/tclsh
set variableA 10
set {variable B} test
puts $variableA
puts ${variable B}
上記のコードを実行すると、次の結果が得られます。
10
test
上記のプログラムでわかるように、$ variableNameは変数の値を取得するために使用されます。
動的型付け
Tclは動的に型付けされた言語です。変数の値は、必要に応じて必要な型に動的に変換できます。たとえば、文字列として格納されている数値5は、算術演算を実行するときに数値に変換されます。以下に示します-
#!/usr/bin/tclsh
set variableA "10"
puts $variableA
set sum [expr $variableA +20];
puts $sum
上記のコードを実行すると、次の結果が得られます。
10
30
数式
上記の例でわかるように、exprは数式を表すために使用されます。Tclのデフォルトの精度は12桁です。浮動小数点の結果を取得するには、少なくとも1桁の10進数を追加する必要があります。簡単な例で上記を説明します。
#!/usr/bin/tclsh
set variableA "10"
set result [expr $variableA / 9];
puts $result
set result [expr $variableA / 9.0];
puts $result
set variableA "10.0"
set result [expr $variableA / 9];
puts $result
上記のコードを実行すると、次の結果が得られます。
1
1.1111111111111112
1.1111111111111112
上記の例では、3つのケースを見ることができます。前者の場合、被除数と除数は整数であり、結果として整数が得られます。2番目のケースでは、除数のみが10進数であり、3番目のケースでは、被除数は10進数です。2番目と3番目の両方のケースで、結果として10進数が得られます。
上記のコードでは、tcl_precision特殊変数を使用して精度を変更できます。以下に示します-
#!/usr/bin/tclsh
set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0];
puts $result
上記のコードを実行すると、次の結果が得られます。
1.1111