0

在 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
4

2 回答 2

1

你要做的是使用'myself',它指的是调用者(asker):要求运行'myself'所在的代码的人。

to do-ivalue   
  ask links [
    ask myself [set budget 10]   ] 
end

“自我”是指运行代码的代理。它类似于 Java 中的“this”。

于 2011-02-12T11:58:51.963 回答
0

唔。不知道你为什么要这样做..你现在能做的是

询问链接[让 new_value new_value_from_link 询问枢纽[设置预算 new_value]]

于 2011-02-12T03:25:35.603 回答