我在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)
}
答案 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"