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小时内删除。
发表评论