zoukankan      html  css  js  c++  java
  • Tcl/tk基础-3

    今天来讲讲set命令
    set命令是用来赋值给一个变量的,它需要两个参数:变量名以及变量值
    在Tcl里面不用遵循先定义后使用的规则,解析器会自动在第一次赋值时创建变量,赋值后可以用美元符号$加变量名来取值
    #给变量var赋值"5"
    set var 5
    #这个是解析器的输出
    => 5
    #调用puts输出变量var里面的值
    puts $var
    #这个也是解析器的输出
    => 5
    这里面的"#"是注释语句的开头,Tcl只支持单行注释
    set命令也可以只接受一个参数,这个时候,set跟puts的作用是一样的
    set var 5
    => 5
    #等价与"puts $var"
    set $var
    => 5

    事实上,Tcl是一个特殊的脚本语言,它只跟String打交道,它的解析器的基本原理是"替换Substitution"跟"分组Grouping"
    所谓的"替换",表现出来的就是允许内嵌命令
    而"分组"则允许一个参数里面出现多个单字
    替换的命令形式是command substitution, 而内嵌命令需用方括号"["和"]"括起来。Tcl的解析器会把方括号里面的所有内容当作命令来解释
    以set命令为例
    set len [string length testmessage]
    => 11
    在这里例子中,内嵌的命令是"string length testmessage"(string命令会在后面提到)。"string"用来处理所有跟字符串有关的操作,而这里则是用来检测"testmessage"这个字符串的长度,并把返回值赋予len以供以后使用。这个组合命令其实也就相当于
    set len 11
    如果有多个命令嵌套,Tcl解析器会按顺序的从左到右的解释它们,如
    set len [string length [string range test 0 2]]
    => 3
    解析器首先解释length,但发现该命令里面嵌套了一个子命令,于是又开始解释该子命令并得到"tes"这个结果,再把这个结果当作string length命令的输入,于是得到"3"
  • 相关阅读:
    ActiveReport换页的判断(当设置了repeatstyle为OnPage)
    创建与删除SQL约束或字段约束。 http://www.cnblogs.com/hanguoji/archive/2006/11/17/563871.html
    在SQL Server 2005中实现表的行列转换
    ActiveReport,Detail隐藏的问题
    SQL Server identity列的操作方法
    「預り」の意味
    POJ 1595 Prime Cuts
    Hdu Graph’s Cycle Component
    POJ 3250 Bad Hair Day
    Hdu 1548 A strange lift(BFS)
  • 原文地址:https://www.cnblogs.com/LeoWong/p/1556818.html
Copyright © 2011-2022 走看看