tcl,全名tool command language,是一種通用的工具語言。
1)每個命令之間,通過換行符或者分號隔開;
2)tcl的每個命令包含一個或者多個單詞,默認第一個單詞表示命令,第二個單詞表示參數,
單詞之間必須同空格或者tab鍵隔開;
3)tcl解釋器的執行過程,分析階段,對單詞的拆分,同時進行必要的置換;
執行階段,檢查命令有效性,啟動c/c++解釋器,傳遞之后的單詞作為參數,執行命令;
4)tcl中的注釋,用###來表示,一個就可以。必須在一行的開頭
5)同一行命令太長,轉到下一行,使用\ //,先轉義空格隔開單詞,之后//表示轉到下一行;
6)大括號,{}中,不做特殊字符的識別,所有字符作為普通字符來處理;
7)雙引號,""""中,只有部分的特殊字符被處理,換行符,$,[],其他作為普通字符;
8)tcl對復雜的數據結構支持不好,數組的支持也很奇怪。本文只討論變量;
9)tcl中的list 數據類型,不聲明變量,直接放在{}中,也定義了一些list操作函數,直接對{}進行操作;
list中的不同對象之間用空格隔開;可以將list賦值給一個變量
tcl中的置換有三種:
1)變量置換,$只是進行變量的簡單替換,並不進行運算;
set x 10; set y $x+100; 那y的值是10+100,被當做一個整體的字符來處理,而並沒有進行運算;
2)命令置換,[,將最后一個命令的執行結果返回作為參數,內部可以有多條命令;
set y [expr $x+100;] 這時的y表示110;[]中的命令必須是若干tcl可識別的正確命令;
3)反斜杠置換,\,用來打出一些特殊的字符;如換行符\n,空格,[,$,並沒有另一個方括號];
set msg money\ \$3333\ \nArray\ a\[2] 輸出money $3333
Array a[2]
tcl中的操作數,整數,實數都可以,0x開頭表示十六進制,o開頭表示八進制;
運算符和優先級與C類似;
tcl中的控制流,while,for,if,foreach,switch,各個參數用空格隔開,可以使用{}包住各個分開的參數;
其中的{},{必須寫在與命令一行的地方,避免tcl認為命令已經結束;
break和continue,來控制單個循環;
tcl中的默認命令:
1)set 設置變量,變量命令也遵守C的標准,字符,數字,下划線;
set a 2; $a表示該變量
2)unset,刪掉某個變量;可以加多個變量 unset a b;表示都被刪除
3)append,變量拼接, incr,操作數必須是整數,相加;
4)expr,數學計算命令,參數必須是數字,支持很多C的運算函數,可以直接調用;
tcl中的輸入輸出:
1)scan,可以實現格式化輸入:
scan "some 26 34" "some %d %d" a b
2)puts,格式化輸出:
puts [format "the value of c is %d, d is %d, e is %d, f is %d" $c $d $e $f]
tcl中的錯誤,異常處理:
1)catch command ? varname,執行command,返回之后的結果為命令返回值,或者直接賦值給變量var_name;並不會退出tcl
2)error message ? info ? code,將message作為一個錯誤信息,返回回去,
扔缺少procedure,文件,字符串處理部分,需要補充;