查找程序的“类型”(记者/命令和不同的上下文)

时间:2014-09-19 12:59:03

标签: netlogo

我正在尝试提取和排序模型中所有过程的列表。基本上我只想要在Observer上下文中运行的程序,只需要命令,而不是记者。工作区有一个.getProcedures():Map<String, Procedure>方法,我从那里访问过程对象。

这引出了两个相关的问题:1。我有没有办法找出Procedure对象是记者还是命令? NetLogo桌面版似乎能够做出这种区分,所以我认为答案可能是肯定的。 2.有没有办法让我找出程序的上下文是什么,即它是补丁/乌龟/链接程序还是观察程序?

1 个答案:

答案 0 :(得分:1)

http://ccl.northwestern.edu/netlogo/docs/scaladoc/org/nlogo/nvm/Procedure.html显示Procedure具有返回api.Syntax对象的语法方法。您需要的方法是ret(根据它是{1}}还是Syntax.VoidType,根据它是命令还是记者程序)和Syntax.WildcardType(可能是例如agentClassString &#34; OTPL&#34;。)

哦实际上我现在也看到了Procedure的第一个构造函数参数是Type tyype(额外的y是因为type是Scala中的关键字),所以对于问题的第一部分,你同样可以检查一下,看看它是COMMAND还是REPORTER。信息冗余存储可能没有任何正当理由。