Netlogo程序输入:可能通过引用调用?

时间:2016-07-09 17:29:53

标签: netlogo

有没有办法将输入传递给netlogo过程,以便可以在过程中修改输入值?例如:

to test
  let value 200
  test2 value
  print value
end

to test2 [v]
  set v v + 1
end

如果你运行它,它将输出200.我想以某种方式修改它(不使用全局变量而不使用报告程序),以便输出201。

1 个答案:

答案 0 :(得分:2)

您可以使用可变对象,例如数组或表。

extensions [table array]

to test
  let _a array:from-list n-values 10 [0]
  increment-aval _a 0
  print _a

  let _t table:make
  let _key "key1"
  table:put _t _key 0
  increment-tval _t _key
  print _t
end

to increment-aval [#a #i]
  let _old array:item #a #i
  array:set #a #i (1 + _old)
end

to increment-tval [#t #key]
  let _old table:get #t #key
  table:put #t #key (1 + _old)
end

当然,如果你不需要,最好不要使用可变性。