美文网首页
tcl培训教程笔记

tcl培训教程笔记

作者: 张哈哈天天开心 | 来源:发表于2018-08-25 20:13 被阅读0次
    • Tcl的核心命令集可以扩展、被继承、被屏蔽
    • 简单的讲,Tcl语言的语法实际上是一些Tcl解释器怎样对Tcl命令进行分析的规则的集合
    • 命令之间必须用换行符分号隔开
    • Tcl的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用空格或Tab键隔开
    • Tcl解析器在分析命令时,把所有的命令参数都当做字符串看待
    • 变量置换(variable substitution)由$符号标记,会导致变量的值插入一个单词中
    //假定‘%’为Tcl的命令提示符,输入命令并回车后,下一行会输出命令执行的结果
    %set x 10  //定义变量x,并把x赋值为10   
    10
    %set y $x+100   //y的值是10+100,这里x被置换成它的值10   
    10+100  //此时y是'10+100’这个字符串,并不是110   
    
    • 命令置换(command substitution)是由[]括起来的Tcl命令及其参数标记,会导致某一个命令的全部或部分单词被另一个命令的结果所代替
    %set y [expr $x+100]
    110
    //[]中脚本的值为最后一个命令的返回值。有了命令置换,实际上就表明命令之间是可以嵌套的,即一个命令的结果可以作为别的命令的参数。
    
    • 反斜杠置换(backslash substitution)主要用于在单词符号中插入诸如换行符、空格、[、$等被Tcl解释器当作特殊符号对待的字符。
    %set msg multiple\ space  //msg的值为multiple space
    //如果没有反斜杠的话,解释器会认为最后两个单词之间的空格是分隔符,会认为set命令有多余,就会报错。
    
    图1. 反斜杠
    • Tcl解释器对双引号中的各种分隔符将不做处理,只当做普通字符,除了换行符、$、[]这三个。
    • 花括号中,所有的字符都将成为普通字符,失去其特殊意义。
    • 数组元素的名字包含两部分:数组名和数组中元素的名字。
    set day(monday) 1//生成一个名为day的数组和一个数组元素monday,并将值置为1
    set day(tuesday) 2//生成一个名为tuesday的数组元素并将值置为2
    
    • 命令unset,从解释器中删除变量,它后面可以有任意多个参数1,每个参数是一个变量名,可以是简单变量,也可以是数组或数组元素。
    %unset a b day(monday)
    
    • 命令append把文本继续添加到变量后面
    %set txt hello
    hello
    %append txt  "! How are you"
    hello! How are you
    
    • 命令incr把一个变量值加上一个整数,它要求原来的值和新加的值都必须是整数。
    %set b 2
    2
    %incr b 3
    5
    
    • 操作数通常是整数或实数;整数的第一个字符是0则被看做八进制;前两个字符为0x则被看做十六进制的。
    • 运算符和优先级

    • Tcl支持的数学函数



    • 命令list,用来表示集合
    • 命令concat,把多个list合成一个list,每个list变成新list的一个元素
    • 命令lindex,用于从一个列表中取得元素。lindex至少要获取两个参数,即一个列表和一个索引值,并返回从列表中取得的元素
    %lindex (John Anne Mary Jim) 1
    Anne
    
    • 命令llength,返回list中元素的个数。
    • 命令linsert,把一个或多个元素插入已经存在的列表,从而形成新的列表
    %set x {a b {c d} e}
    a b {c d} e
    linsert $x 2 X Y Z  //将X Y Z从列表的第二位插入
    a b X Y Z {c d} e
    
    • 命令Ireplace,替换列表中的部分元素
    %Ireplace {1 7 8 {9 10} 2 {3 4}} 3 3 //将list中第三位元素删除
    1 7 8 2 {3 4}
    %Ireplace {1 7 8 2 {3 4}} 4 4 4 5 6//将list中第四位元素用4 5 6替代
    1 7 8 2 4 5 6
    
    • 命令lappend不直接接受列表,而是接受存放的变量
    • 命令Isearch在列表中查找指定的元素。它获取两个参数,第一个是一个列表,第二个是一个模式()
    • 命令Isort将list中的元素按照一定规律排序
    • 命令split把字符串按照字符或者单词分开

    没有上机训练很难记住这些语法,并且有些命令貌似是用不到的。先学习到这里。21页左右的地方。

    相关文章

      网友评论

          本文标题:tcl培训教程笔记

          本文链接:https://www.haomeiwen.com/subject/sywgiftx.html