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