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
Était-ce utile?

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
scroll top