Как вызвать переменную родительской процедуры в netlogo? - PullRequest
0 голосов
/ 12 февраля 2011

В netlogo у меня есть процедура, которая вызывает другую процедуру. Как я могу получить значение

например, у меня есть два вида агентов, хаб и ссылка. Концентратор имеет локальную переменную под названием «бюджет», и я пытаюсь изменить ее значение.

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

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

то, что вы хотите сделать, это использовать «я», это относится к вызывающему (спрашивающему): тому, кто попросил запустить код, где находится «я».«Я» относится к агенту, выполняющему код.Это похоже на «это» в Java.

0 голосов
/ 12 февраля 2011

гм. не знаю, почему ты хочешь сделать это так .. то, что вы можете сделать сейчас, это

попросить ссылки [ пусть new_value new_value_from_link спросите концентраторы [ установить бюджет new_value ] ]

...