`is-agent?` 和 `is-turtle?` 之间的区别
Difference between `is-agent?` and `is-turtle?`
我相信这一定是一个简单的问题,但我还没有发现 is-agent?
和 is-turtle?
基元之间的区别,以及何时应该使用一个而不是另一个。
海龟、补丁、链接都是代理。所以 is-agent?
将 return true
用于其中任何一个。但是补丁和链接显然不是海龟,所以 is-turtle?
将 return 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
因此,如果您试图将代理与数字、字符串和 true/false 值之类的东西区分开来,您可以使用 is-agent?
。当你确实想要处理海龟时,使用 is-turtle?
。
我相信这一定是一个简单的问题,但我还没有发现 is-agent?
和 is-turtle?
基元之间的区别,以及何时应该使用一个而不是另一个。
海龟、补丁、链接都是代理。所以 is-agent?
将 return true
用于其中任何一个。但是补丁和链接显然不是海龟,所以 is-turtle?
将 return 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
因此,如果您试图将代理与数字、字符串和 true/false 值之类的东西区分开来,您可以使用 is-agent?
。当你确实想要处理海龟时,使用 is-turtle?
。