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來打印,這個數字被轉化爲正確的字符串。有兩種表示方法,內部和外部,幫助 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

關聯數組

關聯數組有一個索引(key)但不一定是整數。人們普遍認爲就像鍵值對是字符串。一個簡單的例子如下所示。

#!/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文件I/O一章看到更多內容細節。