Comment appeler la variable d'une procédure parent dans Netlogo
-
12-11-2019 - |
Question
Dans Netlogo, j'ai une procédure qui appelle une autre procédure. Comment puis-je obtenir la valeur
Par exemple, j'ai deux races d'agents, un hub et un lien. Un hub a une variable locale appelée «budget» et j'essaie de modifier sa valeur.
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
La solution
Ce que vous voulez faire est d'utiliser, c'est «moi-même», il fait référence à l'appelant (asseyer): celui qui a demandé à exécuter le code où se trouve le «moi-même».
to do-ivalue
ask links [
ask myself [set budget 10] ]
end
Le «soi» fait référence à l'agent exécutant le code. Il est similaire à «ceci» en Java.
Autres conseils
hmm. Je ne sais pas pourquoi tu veux le faire de cette façon .. ce que tu peux faire pour l'instant c'est
demander des liens [Laissez new_value new_value_from_link demander des hubs [set budget new_value]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow