我们如何在tcl脚本中创建sink(5)变量

时间:2013-11-07 21:59:11

标签: tcl ns2

我在ns2中使用20个节点,我试图用for循环访问a(0)a(1)a(2)a(3)a(4)变量我该怎么做

这是我的代码

for {set i 0} {$i < $val(nn)} {incr i} {
    set sink($i) [new Agent/LossMonitor]
    $ns attach-agent $n($i) $sink($i)

}

但它给出了一个错误     错误的变量名称“sink(0)”:upvar不会创建看起来像数组元素的标量变量

我以下列方式声明变量

proc record {} {
  global sink(0) sink(1) sink(2) sink(3) sink(4) sink(5)
}

1 个答案:

答案 0 :(得分:0)

只需使用

global sink

(全局只是一个特殊的upvar案例)

(...)结尾的变量是(关联)数组,不推荐使用数字作为键,最好使用列表,例如。

set mylist {}
# append some elements
lappend mylist "foo" "bar" "baz"
# get the 2nd element
puts [lindex $mylist 1]
# set the 3rd element to "Hello World"
lset mylist 2 "Hello World"