Как я могу назвать переменную родительской процедуры в NetLogo
-
12-11-2019 - |
Вопрос
В NetLogo у меня есть процедура, которая вызывает другую процедуру.Как я могу получить значение
Например, у меня есть две породы агентов, ступица и ссылка.HUB имеет локальную переменную под названием «бюджет», и я пытаюсь изменить его значение.
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
. Решение
То, что вы хотите сделать, это использовать - это «сам», это относится к абонеру (Аскеру): тот, кто попросил запустить код, где находится «сам».
to do-ivalue
ask links [
ask myself [set budget 10] ]
end
.
«Я» относится к агенту, запущенному код.Это похоже на «это» в Java.
Другие советы
hmm. не уверен, почему вы хотите сделать это таким образом .. Что ты можешь сделать сейчас, это
Ссылки ссылки [ Пусть new_value new_value_from_link. спросить HUBS [ Установить бюджет New_Value. Несомненно ]
Не связан с StackOverflow