有没有办法将输入传递给netlogo过程,以便可以在过程中修改输入值?例如:
to test
let value 200
test2 value
print value
end
to test2 [v]
set v v + 1
end
如果你运行它,它将输出200.我想以某种方式修改它(不使用全局变量而不使用报告程序),以便输出201。
答案 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
当然,如果你不需要,最好不要使用可变性。