if-statement - NetLogo 列表和条件修改

标签 if-statement map foreach netlogo

我想有选择地修改列表的一些成员,但不是全部,这取决于成员是否满足某些条件。例如,在一个值列表中,我想从所有大于 9 的值中减去 9。

我试过

set nodeext2 map nodeext2 [ifelse-value (? > 9)  [? - 9][?]]

但是得到一个“预期为常数”的错误。我也尝试过 if-else 并使用括号。谁能帮我?我觉得好像在某处清楚地说明了这点,但我一直找不到在哪里。

最佳答案

您只需颠倒 map 的顺序论点:记者必须在名单之前。尝试:

set nodeext2 map [ifelse-value (? > 9)  [? - 9][?]] nodeext2

您在 ifelse-value 上收到“预期为常量”消息因为编译器期望 map 的第二个参数成为一个列表,因此试图解释 [ifelse-value (? > 9) [? - 9][?]]作为一个(并且失败,因为列表是由常量组成的,而 ifelse-value 不是)。

关于if-statement - NetLogo 列表和条件修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552504/

相关文章:

map[Task]int64 其中 Task 是一个接口(interface)

map - 如何处理函数参数中可选键的重新映射

php - While 循环中的 While 循环 - 我应该使用 Foreach 循环吗?

r - 在 R 中使用 foreach 进行并行提升

php - 从数据库中获取数组,然后使用每个数组值获取信息

r - 分组执行 ifelse 的更好方法

R Dplyr Ifelse 按组

Java If/else 字符变化

c++ - 与 boost::interprocess 共享映射

java - 从 XML 树读取属性值时 if 语句有帮助