TCL基本语法
1语言简介
TCL缩短工具命令语言的形式。由加州大学伯克利分校的约翰Ousterhout设计它。它是一种脚本语言,由其自身的解释器,它被嵌入到开发应用程序的组合。
TCL最初在Unix平台中。后来移植到Windows,DOS,OS/2和Mac OSX。 TCL非常类似于其他UNIX的shell语言,类似Bourne Shell (Sh), the C Shell (csh), the Korn Shell (sh), 和 Perl。
它的目的是提供程序与其他程序,也是作为一个可嵌入的翻译相互作用的能力。虽然原来的目的是为了使程序能够进行交互,可以到由Tcl/Tk 编写的完全成熟的应用。
1.1TCL特性
TCL的特点如下:
1、减少开发时间。
2、功能强大和简单的用户界面工具包整合传统知识。
3、一次编写,随处运行。它可以运行在Windows,Mac OS X和几乎所有的Unix平台。
4、有经验的程序员很容易上手,因为语言就是这么简单,可以在几个小时或几天学习Tcl就可以搞定。
字符串操作函数puts5、可以轻松地用Tcl扩展现有的应用程序。另外,也可以包括Tcl的用C,C++或Java来扩展Tcl,或反之亦然。
6、有一组功能强大的网络功能。
7、最后,它的开源,免费的,可以用于其他无任何限制商业应用。
2基本语法
2.1命令结构
commandName空格arguments。每条命令之间通过换行或者;隔开。例如:
    #设置变量foo为0
set foo 0
set bar 1;puts $bar;  #设置(set 为一个Tcl命令)变量bar为1,输出(puts也是一个Tcl命令)bar
2.2注释
使用#注释,不过要注意的是下面的注释是错误的:
    set foo 0  #设置变量foo为0,这种注释是错误的
因为tcl解析器总是认为一条命令应该以换行或者分号结束,其他的在同一行中都认为是参数。所以正确的应该是:
set foo 0
#设置变量foo为0,这种注释是正确的
set foo 0;  #设置变量foo为0,这种注释是正确的
3变量定义及基本操作
tcl可以定义两种类型的变量:变量和数组。
3.1变量
1、在tcl变量不需要声明就可以直接赋值。给变量赋值的例子:
    set foo 0;
    set foo “zero is 0”;  #加引号的作用是为了告诉编译器包括空格
    2、取得变量的值可以在对应的变量名前面加$来取得,例如:
    puts $foo;  #表示打印foo的值
3.2数组
1、数组也不需要声明,直接赋值,例如:
    set arr(0) 0;
    set arr(1) 1;
一个比较有意思的地方是数组下标可以不按照顺序来写,也不一定是数字,可以是字符串。例如:
    set arr(3) a;
    set arr(num) b;
当然tcl数组也支持多维数组,声明形式为:
set arrs(1,1,1,1,1) a;  #随便多少维
    2、可以使用puts $arr(3);的形式来获得数组某个元素的内容,也可以使用parray命令:
    parray arr;  #将打印出arr数组所有元素内容
4变量高级操作
4.1字符串操作
string命令基本语法如下(这里的string1,string2可以是字符串也可以是变量,option是下列
选项之一)
string option string1 string2;
option的操作选项:
  compare 按照字典的排序方式进行比较。根据string1 <,=,>string2分别返回-1,0,1
  first 返回string2中第一次出现string1的位置,如果没有出现string1则返回-1
  last 和first相反
  trim 从string1中删除开头和结尾的出现在string2中的字符
  tolower 返回string1中的所有字符被转换为小写字符后的新字符串
  toupper 返回string1中的所有字符串转换为大写后的字符串
  length 返回string1的长度
例子:
    set str “hello world!”
string length $str;  #将返回变量str的长度
4.2数字操作
因为tcl中只有一个string类型的变量,所以当要操作数字进行运算的时候,tcl提供了incr和expr两个操作命令。
1、incr的基本用法为:
incr variable integer(variable必须为数字)
例如我要将一个数字加3
set a 3;
incr a 3;  #将a加3,如果要减3,则为 incr a -3;
  默认的incr a等同于a++的意思,即本身自增1。
2、expr的基本语法为:
expr function number
expr是为了提供更加复杂的操作而设计的一个语法,比如运算乘除法等等。在执行算术操作的时候必须将expr命令放在算术操作之前。例如:
set a 20; set b 4;
set c [expr $a/$b];  #此时的c的值为5
#当[]出现在一组命令中,Tcl把中括号之间的所有语句当做一组Tcl命令。Tcl对这组命令进行解释,并用结果代替[]之间的文字。
除此之外,expr还能够识别一些函数及其返回值如下:
  abs(x) x的绝对值
  round(x) x舍入后得到的整数值
  sin(x) x的正弦
  …………………………………
  举个例子:
set a [expr sin(0.3)];  #计算0.3的正弦
5运算符
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 Tcl语言有丰富的内置运算符,运算符提供的以下几种类型:算术运算符、关系运算符、逻辑运算符、位运算符、三元运算符。
5.1算数运算符
下表列出了所有Tcl语言支持的算术运算符。假设变量A=10,变量B=20,则:
运算符
描述
实例
+
两个操作数相加
A + B = 30
-
第一个操作数减去第二个操作数
A - B = -10
*
两个操作数相乘
A * B = 200
/
第一个操作数除以第二个操作数
B / A = 2
若想得到小数,至少有一个操作数为小数,如:set A 10.0;
%
模运算即整数除法后的余数
B % A = 0
5.2关系运算符

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。