1,表达式

1.1 操作数 TCL表达式的操作数通常是整数或实数。整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作是十六进制的。

1.2运算符  TCL语法形式和用法跟ANSI C中很相似

1.3 函数

    TCL中支持的数学函数如下

abs( x) Absolute value of x.
acos( x) Arc cosine of x, in the range 0 to p.
asin( x) Arc sine of x, in the range -p/2 to p/2.
atan( x) Arc tangent of x, in the range -p/2 to p/2.
atan2( x, y) Arc tangent of x/ y, in the range -p/2 to p/2.
ceil( x) Smallest integer not less than x.
cos( x) Cosine of x ( x in radians).
cosh( x) Hyperboliccosine of x.

double( i) Real value equal to integer i.
exp( x) e raised to the power x.
floor( x) Largest integer not greater than x.
fmod( x, y) Floating-point remainder of x divided by y.
hypot( x, y) Square root of ( x 2 + y 2 ).
int( x) Integer value produced by truncating x.
log( x) Natural logarithm of x.
log10( x) Base 10 logarithm of x.
pow( x, y) x raised to the power y.
round( x) Integer value produced by rounding x.
sin( x) Sine of x ( x in radians).
sinh( x) Hyperbolic sine of x.
sqrt( x) Square root of x.
tan( x) Tangent of x ( x in radians).
tanh( x) Hyperbolic tangent of x.

TCL中有很多命令都以表达式作为参数。最典型的是expr命令,另外if、while、for等循环控制命令的循环控制中也都使用表达式作为参数。

2,list

2.1   list命令

list这个概念在TCL中是用来表示集合的。TCL中list是由一堆元素组成的有序集合,list可以嵌套定义

% list 1 2 {3 4} 
        1 2 {3 4}

2.2 concat 命令(这个命令不知道怎么用)

           语法:concat list ?list...?

        这个命令把多个list合成一个list,每个list变成新list的一个元素

2.3 lindex 命令

      语法:lindex list index 
      返回list的第index个(0-based)元素。例:
      % lindex {1 2 {3 4}} 2 
       3 4

2.4 llength 命令

    语法:llength list 
    返回list的元素个数。例
    % llength {1 2 {3 4}} 
    3

2.5 linsert 命令

      语法:linsert list index value ?value...? 
      返回一个新串,新串是把所有的value参数值插入list的第index个(0-based)元素之前得到。
      例:
      % linsert {1 2 {3 4}} 1 7 8 {9 10} 
      1 7 8 {9 10} 2 {3 4}

2.6 lreplace 命令

      语法:lreplace list first last ?value value ...? 
      返回一个新串,新串是把list的第firs (0-based)t到第last 个(0-based)元素用所有的value
      参数替换得到的。如果没有value参数,就表示删除第first到第last个元素。例:
      % lreplace {1 7 8 {9 10} 2 {3 4}} 3 3 
      1 7 8 2 {3 4} 
      % lreplace {1 7 8 2 {3 4}} 4 4 4 5 6 
       1 7 8 2 4 5 6

2.7 lrange 命令

        语法:lrange list first last 
        返回list的第first (0-based)到第last (0-based)元素组成的串,如果last的值是end。就是
        从第first个直到串的最后。
        例:
        % lrange {1 7 8 2 4 5 6} 2 end 
        8 2 4 5 6

2.8 lappend 命令

      语法:lappend varname value ?value...? 
      把每个value的值作为一个元素附加到变量varname后面,并返回变量的新值,如果varname
      不存在,就生成这个变量。例:

      %set  a  9

      9 
      % lappend a 1 2 3 
       9  1 2 3 
      % set a 
      9  1 2 3

2.9  lsearch 命令

      语法:lsearch ?-exact? ?-glob? ?-regexp? list pattern 
      返回list中第一个匹配模式pattern的元素的索引,如果找不到匹配就返回-1。-exact、-glob、
      -regexp是三种模式匹配的技术。-exact表示精确匹配;-glob的匹配方式和string match
      命令的匹配方式相同,将在后面第八节介绍string命令时介绍;-regexp表示正规表达式匹配,
      将在第八节介绍regexp命令时介绍。缺省时使用-glob匹配。例:
      % set a { how are you } 
      how are you 
      % lsearch $a y* 
       2
      % lsearch $a y? 
      -1

2.10 lsrot命令

语法:lsort ?options? list 
这个命令返回把list排序后的串。options可以是如下值:
-ascii 按ASCII字符的顺序排序比较.这是缺省情况。
-dictionary 按字典排序,与-ascii不同的地方是:
(1)不考虑大小写
(2)如果元素中有数字的话,数字被当作整数来排序.
因此:bigBoy排在bigbang和bigboy之间, x10y 排在x9y和x11y之间.
-integer 把list的元素转换成整数,按整数排序.
-real 把list的元素转换成浮点数,按浮点数排序.
-increasing 升序(按ASCII字符比较)
-decreasing 降序(按ASCII字符比较)
-command command TCL自动利用command 命令把每两个元素一一比较,然后给出排序结果。

2.11 split 命令

语法:split string ?splitChars? 
把字符串string按分隔符splitChars分成一个个单词,返回由这些单词组成的串。如果
splitChars
是一个空字符{},string被按字符分开。如果splitChars没有给出,以空格为分隔符。例:
% split "how.are.you" . 
how are you 
% split "how are you" 
how are you 
% split "how are you" {} 
h o w { } a r e { } y o u

2。12 join 命令

语法:join list ?joinString? 
join命令是命令的逆。这个命令把list的所有元素合并到一个字符串中,中间以joinString分
开。缺省的joinString是空格。例:
% join {h o w { } a r e { } y o u} {} 
how are you 
% join {how are you} . 
how.are.you

Tcl语言笔记之二的更多相关文章

  1. TCL语言笔记:TCL基础语法

    一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...

  2. TCL语言笔记:TCL练习二

    一.练习 1.二进制转十进制 proc b2d {b} { ;set len [string length $b] } {$i<$len} {incr i} { incr sum [expr , ...

  3. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  4. TCL语言笔记:TCL中的控制结构命令

    一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. ...

  5. TCL语言笔记:TCL中的数学函数

    一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...

  6. TCL语言笔记:TCL中的列表操作

    一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...

  7. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  8. C语言笔记(二维数组与数值指针)

    一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...

  9. Tcl语言笔记之一

    1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100                               // ...

随机推荐

  1. IOS 使用IOS6苹果地图

    IOS应用程序中使用Map Kit API开发地图应用程序.其核心是MKMapView类的使用.我们可以设置地图显示方式,控制地图,可以在地图上添加标注. 1.显示地图 在Map Kit API中显示 ...

  2. MVC-04 视图(1)

    不可否认的,View应该是整个ASP.NET MVC项目开发过程中最花时间的部分,因为与显示逻辑相关的技术五花八门,你可能要学习的有HTML.CSS.JavaScript.DOM.JQuery.JSO ...

  3. w3c标准的selection对象介绍

    简介 术语 属性 方法 document.activeElement document.designMode = 'on'; 简介 selection是对当前激活选中区(即高亮文本)进行操作. 在非I ...

  4. 去确认CP210x UART Bridge的USB的VID和PID

    [背景] 之前买的USB口的HART猫: [记录]为USB接口的HART猫ExSaf ESH232U安装对应的USB转RS232驱动 其中内部是USB转RS232. 然后打算去看看之前的自己此处的某个 ...

  5. 用C#开发较完整的Windows任务管理器

    原文 用C#开发较完整的Windows任务管理器 这个代码没有什么技术含量,仅仅使用 WMI 和 API 实现了 Windows 任务管理器的部分功能. 但代码里面封装了一个 SystemInfo 的 ...

  6. Cocos2d—X游戏开发之VS2010 控制台输出中文,模拟器中文乱码问题解决

    首先,先解决第一个问题,我们使用VS2010开发的时候,调试的时候,中文打印出来都是乱码,这个问题很纠结. 如下图: CCLOG("cclog: 测试使用标签的自动换行和个别字体大写&quo ...

  7. 如何使用robots不让百度和google收录

    如何使用robots不让百度和google收录   有没有想过,如果我们某个站点不让百度和google收录,那怎么办? 搜索引擎已经和我们达成一个约定,如果我们按约定那样做了,它们就不要收录. 这个写 ...

  8. Oracle 日期计算

    日期相减,求天数 方法一: )),createdate from goods t

  9. 08.net网站开发(前端):5.jQuery

    开发网站肯定要会JS,嫌代码太难看难学那至少要学会jQuery.当然我见过有些项目纯用服务端控件也是能做出来的,但我相信,那些碰到复杂的需求的话肯定很棘手的.jQuery是对JS和DOM的封装,少量代 ...

  10. the convertion between string and BlobColumn

    It's hard to find some samples about the convertion between string and BlobColumn.AddBlobData. It's ...