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

有帮助吗?

解决方案

你想要做的是使用'我自己',它指的是来电者(问问者):要求运行'我自己'所在的代码的人。

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

“self”是指运行代码的代理。它类似于java中的“这个”。

其他提示

嗯。 不确定为什么你想这样做...... 你现在可以做些什么

ask链接[ 让new_value new_value_from_link. 问枢纽[ 设置Budget New_value. ] ]

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top