is-agent?和is-turtle?之间的区别

时间:2018-10-31 13:05:38

标签: netlogo

我相信这肯定是一个简单的问题,但是我没有发现is-agent?is-turtle?原语之间的区别,以及何时应该使用一个原语而不是另一个。

1 个答案:

答案 0 :(得分:3)

乌龟,补丁和链接都是代理。因此is-agent?将为其中任何一个返回true。但是补丁和链接显然不是乌龟,因此is-turtle?会返回false

breed [ ghouls ghoul ]

to test
  clear-all
  create-turtles 1
  create-ghouls 1
  ask turtle 0 [ create-link-to turtle 1 ]

  show is-agent? turtle 0   ; true
  show is-agent? ghoul 1    ; true
  show is-agent? patch 0 0  ; true
  show is-agent? link 0 1   ; true

  show is-turtle? turtle 0  ; true
  show is-turtle? ghoul 1   ; true
  show is-turtle? patch 0 0 ; false
  show is-turtle? link 0 1  ; false

  show is-ghoul? turtle 0   ; false
  show is-ghoul? turtle 1   ; true
end    

因此,如果您试图将代理与数字,字符串和正确/错误值之类的东西区分开,则可以使用is-agent?。当您确实确定要与乌龟打交道时,请使用is-turtle?