zhangchen 发表于 2007-5-27 09:38:07

TCL中的问题

set a "a b c d"和set a {a b c d}有什么区别吗?还是说一个是string型的,另一个是list型的?

songfun 发表于 2007-5-27 10:18:04

是一样的。
tcl没有类型,可以说都是字符串,也都是list。

yqx 发表于 2007-5-29 22:08:29

tcl只有一种数据类型,那就是string型.

zhang_jun_ 发表于 2007-6-12 18:29:10

再问

那上述两种赋值方式最后有什么不同的作用吗?

zhang_jun_ 发表于 2007-6-12 19:01:17

接上

就是在用的时候

wgx198302 发表于 2007-6-15 22:21:15

是不是里面有转义字符是不一样呀。。。。。

zll5577 发表于 2007-6-16 09:27:13

用双引号来集群参数的目的在于使用有空白的参数。
例如: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:03

set a "a b c d" 和set a { a b c d}是一样的,都是定义
我个人觉得区别就在于这两个值的输出是怎样的, ""与{}的区别了,关键看puts输出是什么,
""与{}的区别:
""中的内容会区分置换的命令,比如:$,[]和\.
{}中的全部内容都显示出来
建议楼主可以试一下,好不好关键看疗效sdlkfj3
页: [1]
查看完整版本: TCL中的问题