質問

NS2で20ノードを使用しています。A(0)a(1)a(2)a(3)a(4)for loopにアクセスしようとしています。

これが私のコードです

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 場合)

で終わる変数 (...) Keyとして数値を使用する(関連)配列は推奨されない場合、代わりにリストを使用する方が良いです。

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