51Testing软件测试论坛

标题: TCL中的问题 [打印本页]

作者: zhangchen    时间: 2007-5-27 09:38
标题: TCL中的问题
set a "a b c d"和set a {a b c d}有什么区别吗?还是说一个是string型的,另一个是list型的?
作者: songfun    时间: 2007-5-27 10:18
是一样的。
tcl没有类型,可以说都是字符串,也都是list。
作者: yqx    时间: 2007-5-29 22:08
tcl只有一种数据类型,那就是string型.
作者: zhang_jun_    时间: 2007-6-12 18:29
标题: 再问
那上述两种赋值方式最后有什么不同的作用吗?
作者: zhang_jun_    时间: 2007-6-12 19:01
标题: 接上
就是在用的时候
作者: wgx198302    时间: 2007-6-15 22:21
是不是里面有转义字符是不一样呀。。。。。
作者: zll5577    时间: 2007-6-16 09:27
用双引号来集群参数的目的在于使用有空白的参数。
例如:set a "this string contains whitespace"
如果一个参数一双引号来开始,该参数会一直到下一个双引号才结束。其中可以有换行符和分号。

用花扩括号来集群参数与用双引号来集群参数的区别在于:用花扩括号来集群参数可以嵌套。但是set其中的三种子替换不被执行。
分别是: 1.用$符进行变量替换
       2用方括号进行命令子替换
       3.转移符替换(转移符时间不可打印字符或由它数意义的字符插入进来。这一概念与C语言中的一样。)

例如:
set a {xyz a {b c d}}//set收到俩个参数 a 'xyz a {b
//c d}'

eval {
set a 22
set b 33
}//eval收到一个参数 'set a 22\nset b 33'
作者: 霸气林林    时间: 2007-6-17 12:55
set a "a b c d" 和set a { a b c d}是一样的,都是定义
我个人觉得区别就在于这两个值的输出是怎样的, ""与{}的区别了,关键看puts输出是什么,
""与{}的区别:
""中的内容会区分置换的命令,比如,[]和\.
{}中的全部内容都显示出来
建议楼主可以试一下,好不好关键看疗效sdlkfj3




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2