空的?预期输入是字符串或列表,但得到的是 TRUE/FALSE false

EMPTY? expected input to be a string or list but got the TRUE/FALSE false instead

我用了“空?”在代码的许多部分,我不明白它到底指的是哪一部分的错误。我在这里写了一部分我使用 'empty?' 的代码。我不明白哪里出了问题。

""ask shuttles [
     ifelse empty? onlyNodes = TRUE
    [ calc-short-shuttles
      ;get the original lists back
      set place last onlyNodes
      ;change the location (lew location is the prior destination)
      if place = node 98 [
        set destination "MilanoCentrale1"
      ]
      if place = node 191 [
        set destination "InnovationCampus1"
      ]
      if place = node 192 [
        set destination "InnovationCampus2"
      ]
      if place = node 219 [
        set destination "MilanoLinate1"
      ]
      calc-short-shuttles
      ;new shortest path for the way back
    ]""

Netlogo 尝试执行不同程序的顺序是这里的问题。如果我用括号写下来,Netlogo 试图: (ifelse (empty? (onlyNodes = TRUE)))

当您不确定 Netlogo 执行过程的顺序时,您可以在您的代码中引入括号。这使您可以确保 empty?= TRUE 之前执行:ifelse (empty? onlyNodes) = TRUE

对于这种特定情况,none 实际上很重要。ifelse 需要输入为 TRUE 或 FALSE。 = TRUE 生成的输出要么为 TRUE 要么为 FALSE,但 empty? 也是如此,因此 =TRUE 是多余的。

ifelse empty? onlyNodes [<command1>][<command2>]