我在NS2中使用了20个节点,我正在尝试访问A(0)A(1)A(2)A(2)A(3)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)
}
有帮助吗?

解决方案

只是使用

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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top