Kategoriak: All

arabera 建入 林 11 years ago

572

Tcl

Tcl 是一种脚本语言,具有独特的命令求值机制,分为两个阶段进行。首先,它进行替换操作,然后对剩下的命令进行求值。Tcl 提供多种方式输出文本,包括使用双引号、花括号和裸字符串。此外,它支持同行注释,并强调正确使用分号分隔命令。变量赋值在 Tcl 中同样重要,通过 set 命令可以将值赋给变量。Tcl 变量可以是 scalar variable 或 associative array,取决于其命名方式。

Tcl

Tcl

求值与替换 1: 通过 "" 分组参数

基础背景知识
Tcl 中命令求值的两个阶段

第二阶段 对剩下的命令进行求值

第一阶段 执行一遍替换

赋值到变量

疑问
associative array 是什么
scalar variable 是什么
set X 100 puts "$X"

双引号中的字符串会首先经过展开

但是在本节里并没有详细解释这一问题

set X 100 puts $X

这里涉及到 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 的值

Tcl 中一切都是字符串

但是在解释器内部却可能分为 list, integer 等其他类型

set 范式
set varName value

varName 判定

形如 varName(index)

判定为 associative array 的 member

只由 alphanumeric 字符组成且无括号

判定为 scalar variable

如果 value 出现了则将 varName 的值设置为 value

set 命令
set a

当只有一个参数时本命令返回该参数的内容

set a 100

内部步骤

在内存中将变量名指向值所在内存

返回值

第二个参数是值

第一个参数是变量名

可以是 array 成员

可以是单词

基本的文本输出

引入知识
注释

同行注释时容易犯的错误

puts "Hello World" # some comments

错误

puts "Hello World" ;# some comments

正确

分号的作用
字符串的定界问题

花括号定界

双引号定界

裸字符串

puts 命令
puts {Hello World}
puts "Hello World"
puts HelloWorld

基本知识

补充知识
支持 Tcl 的源码编辑器
支持 Tcl 的 IDE 列表
Eclipse IDE 也可以支持 Tcl

需安装 DLTK 扩展

TkCon 是 Jeff Hobbs 写的另一个解释器
执行 wish 命令可以打开一个特殊的 tcl shell 用于开发窗体应用
直接执行 tclsh 不带参数进入交互式命令环境
输入 info commands 可以列出当前已知的所有命令
执行 tclsh 可以执行指定的 tcl 脚本
下载安装 Activestate ActiveTcl 8.6.1.0

站点

教程站点
http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
官方站点
http://www.tcl.tk/