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位元。為了得到浮點運算的結果,我們應該增加至少一個十進位制數位。一個簡單的例子說明了上述情況。

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

在上面的例子中,可以看到三種情況。第一種情況,被除數和除數是整數,得到一個整數作為結果。第二種情況,除數是小數以及第三種情況,分數是一個十進位制數。在第二和第三情況下,得到的是十進位制數作的結果。

在上面的程式碼,可以使用tcl_precision特殊變數改變精度。它如下所示。

#!/usr/bin/tclsh

set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0];
puts $result

當上述程式碼被執行時,它會產生以下結果。

1.1111