Pergunta

eu estou usando 20 nó no ns2 , estou a tentar aceder a um(0) a(1) (2) (3) (4) variáveis com loop for como posso fazer isso

aqui é o meu código

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

}

mas a sua dá um erro mau nome da variável "coletor(0)":upvar não criar uma variável escalar que se assemelha a um elemento de matriz

eu declarar a variável no seguinte forma

proc record {} {
  global sink(0) sink(1) sink(2) sink(3) sink(4) sink(5)
}
Foi útil?

Solução

Basta usar

global sink

(global é apenas um especial upvar caso)

variáveis que terminar com (...) são (associativa) matrizes, usando números-chave não é recomendado, é melhor usar uma lista em vez disso, e.g.

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"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top