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