在tcl中,以下foreach语句如何工作?

时间:2012-03-13 13:14:41

标签: foreach tcl

我在tcl中有关于foreach的问题:

foreach id "6 8" {
   #do something here;
}

这是"6 8"列表吗?什么“6 8”是什么意思?

2 个答案:

答案 0 :(得分:3)

要记住的主要事情是Tcl本身没有类型,至少不是用户应该担心它们的方式。相反,每个值都是一个字符串,每个命令都会尝试将其视为所需的值类型。

例如:

set value "1"
expr {$value + 1} ; # treat $value as a number
lindex $value 0   ; # treat $value as a list

对于您的代码,6 8命令将值foreach解释为列表,其值为68。值周围的双引号只是将其中的内容分组为单个值。它们(dqs)不表示任何特定类型(即字符串,列表,数字)。

答案 1 :(得分:2)

foreach id "6 8" {
    # do something
}

在这种情况下," 6 8"是两个元素的列表, 6 8 。首先将id分配给 6 的循环,进入循环体。下一次,id将 8 并进入循环体。当它用完列表中的项目时,循环退出。