0

netlogoには、別のプロシージャを呼び出すプロシージャがあります。どうすれば価値を得ることができますか

たとえば、ハブとリンクの2種類のエージェントがあります。ハブには「budget」というローカル変数があり、その値を変更しようとしています。

hubs-own [
  budget
]

to go
  ask hub 0 [
    do-ivalue
  ]
end

to do-ivalue
  ask links [
    ;; I'm trying to set the local variable budget of the hub that's calling this link
    set self.budget newvalue ;; this is obviously wrong, how can I fix this?
  ]
end
4

2 に答える 2

1

あなたがしたいのは「myself」です。これは呼び出し元(asker)を指します。「myself」が配置されている場所でコードを実行するように要求した人です。

to do-ivalue   
  ask links [
    ask myself [set budget 10]   ] 
end

「自己」は、コードを実行しているエージェントを指します。これは、Javaの「this」に似ています。

于 2011-02-12T11:58:51.963 に答える
0

うーん。なぜあなたがこのようにしたいのかわからない..今のところあなたができることは

リンクを尋ねる[new_valuenew_value_from_linkをハブに尋ねる[予算を設定するnew_value]]

于 2011-02-12T03:25:35.603 に答える