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