Как я могу назвать переменную родительской процедуры в NetLogo

StackOverflow https://stackoverflow.com/questions/4975958

  •  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. Несомненно ]

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top