by 建入 林 11 years ago
567
第二阶段 对剩下的命令进行求值
第一阶段 执行一遍替换
双引号中的字符串会首先经过展开
但是在本节里并没有详细解释这一问题
这里涉及到 Tcl 传递数据给 subroutines 的方式
重要
Commands that do change the value of the data must have the data passed by name.
Commands that don't change the contents of a variable usually have their arguments passed by value.
传递 value
传递 name
$ 符号提示 Tcl 使用 x 的值
但是在解释器内部却可能分为 list, integer 等其他类型
varName 判定
形如 varName(index)
判定为 associative array 的 member
只由 alphanumeric 字符组成且无括号
判定为 scalar variable
如果 value 出现了则将 varName 的值设置为 value
当只有一个参数时本命令返回该参数的内容
内部步骤
在内存中将变量名指向值所在内存
返回值
第二个参数是值
第一个参数是变量名
可以是 array 成员
可以是单词
同行注释时容易犯的错误
puts "Hello World" # some comments
错误
puts "Hello World" ;# some comments
正确
花括号定界
双引号定界
裸字符串
需安装 DLTK 扩展