原始數(shù)據(jù)類型在Tcl中是字符串,我們常??梢哉业阶址鸵迷赥cl語言中。這些原始數(shù)據(jù)類型依次創(chuàng)建復(fù)合數(shù)據(jù)類型列表和關(guān)聯(lián)數(shù)組。在Tcl中,數(shù)據(jù)類型可以表示不僅是簡單Tcl的對象,但也可以代表相同的句柄,圖形對象(主要是小部件)復(fù)雜的對象,和I/O通道。讓我們來看看詳細(xì)介紹每一個上面。
在Tcl中,無論它是一個整數(shù),布爾,浮點(diǎn)數(shù),或一個字符串。當(dāng)使用一個變量,可以直接賦值給它,Tcl沒有聲明一步??梢杂袃?nèi)部表示為這些不同類型的對象。它可以將一個數(shù)據(jù)類型到其它需要時。分配值給變量的語法如下。
#!/usr/bin/tclsh set myVariable 18 puts $myVariable
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
18
上述聲明將創(chuàng)建一個變量名myVariable,并將其存儲為一個字符串,即使我們沒有使用雙引號。現(xiàn)在,如果試圖讓該變量的運(yùn)算,它會自動變成一個整數(shù)。一個簡單的例子如下所示。
#!/usr/bin/tclsh set myVariable 18 puts [expr $myVariable + 6 + 9]
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
33
需要注意的一個重要的事情是,這些變量并沒有任何默認(rèn)值,必須指定的值在使用之前。
如果我們嘗試使用puts來打印,這個數(shù)字被轉(zhuǎn)化為正確的字符串。有兩種表示方法,內(nèi)部和外部,幫助 Tcl 創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu)很容易相對于其他語言。另外,Tcl 更有效,因為它是動態(tài)對象的性質(zhì)。
不同于其他語言,在TCL,不需要包含雙引號,它只有一個字。一個例子如下,
#!/usr/bin/tclsh set myVariable hello puts $myVariable
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
hello
當(dāng)我們想表示多個字符串,可以使用雙引號或大括號。它如下所示。
#!/usr/bin/tclsh set myVariable "hello world" puts $myVariable set myVariable {hello world} puts $myVariable
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
hello world hello world
列表不過是一組元素。一組單詞或者使用雙引號或大括號可以用來表示一個簡單的列表。一個簡單的列表如下所示。
#!/usr/bin/tclsh set myVariable {red green blue} puts [lindex $myVariable 2] set myVariable "red green blue" puts [lindex $myVariable 1]
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
blue green
關(guān)聯(lián)數(shù)組有一個索引(key)但不一定是整數(shù)。人們普遍認(rèn)為就像鍵值對是字符串。一個簡單的例子如下所示。
#!/usr/bin/tclsh set marks(english) 80 puts $marks(english) set marks(mathematics) 90 puts $marks(mathematics)
當(dāng)上述代碼被執(zhí)行時,它會產(chǎn)生以下結(jié)果。
80 90
TCL句柄通常用于表示文件和圖形對象。這些可以包括句柄網(wǎng)絡(luò)請求以及其它渠道,如串口通訊,套接字或I/O設(shè)備。下面是創(chuàng)建一個文件句柄的例子。
set myfile [open "filename" r]
您會在Tcl文件I/O一章看到更多內(nèi)容細(xì)節(jié)。