项目应为列表或字符串,但获得0 netlogo?

项目应为列表或字符串,但获得0 netlogo?,netlogo,Netlogo,最近我的netlogo程序表现得很奇怪。当我运行模拟时,它给出了错误项,预期为列表或字符串,但得到0。通常,当出现此类错误时,它会突出显示导致此问题的行。但在我的程序中,这个错误只会弹出,但不会突出显示任何一行。我不知道如何调试哪一行引起了问题,因为我有许多模块,并且在我的程序中多次使用了item命令。任何帮助都将不胜感激。从下面的片段中,我们可以看到正确的语法 insert-item index list value 在代码中使用前,请确保列表值是字符串或列表 该行未高亮显示,因为在代码中确

最近我的netlogo程序表现得很奇怪。当我运行模拟时,它给出了错误项,预期为列表或字符串,但得到0。通常,当出现此类错误时,它会突出显示导致此问题的行。但在我的程序中,这个错误只会弹出,但不会突出显示任何一行。我不知道如何调试哪一行引起了问题,因为我有许多模块,并且在我的程序中多次使用了item命令。任何帮助都将不胜感激。

从下面的片段中,我们可以看到正确的语法

insert-item index list value
在代码中使用前,请确保列表值是字符串或列表

该行未高亮显示,因为在代码中确定列表为字符串或缺少列表

正确使用的一个例子是

mylist []
set mylist insert-item 0 mylist "example"
print mylist

如果mystring或mylist之前没有定义,它们将被设置为零。

下面的代码片段显示了正确的语法

insert-item index list value
在代码中使用前,请确保列表值是字符串或列表

该行未高亮显示,因为在代码中确定列表为字符串或缺少列表

正确使用的一个例子是

mylist []
set mylist insert-item 0 mylist "example"
print mylist


如果mystring或mylist之前没有定义,它们将被设置为零。

我不知道为什么导致错误的代码行没有突出显示。找到代码中发生错误的位置的一种方法是仔细阅读错误消息。最终,您可以发布完整的错误消息。它主要说明错误发生的位置、过程和上下文。但是,您也可以添加打印语句,例如,在使用item命令的部分,将当前过程的名称和海龟编号打印到代码中。然后您应该能够识别导致问题的代码段。@Tyr在错误消息中,它没有显示导致问题的过程和上下文。通常它会告诉我哪个过程导致了问题,但我的代码中没有;NetLogo本身一定有缺陷。您可以共享.nlogo文件吗?如果是的话,你能发一个链接到它吗?如果你愿意私下分享,你可以把它寄到bugs@ccl.northwestern.edu.Also,在弹出的错误对话框中,应该有一个显示内部详细信息复选框。你能检查一下,然后把它显示的完整文本贴出来吗?这里可能有一些线索。@SethTisue内部详细信息显示此消息我不知道导致错误的代码行为什么没有突出显示。找到代码中发生错误的位置的一种方法是仔细阅读错误消息。最终,您可以发布完整的错误消息。它主要说明错误发生的位置、过程和上下文。但是,您也可以添加打印语句,例如,在使用item命令的部分,将当前过程的名称和海龟编号打印到代码中。然后您应该能够识别导致问题的代码段。@Tyr在错误消息中,它没有显示导致问题的过程和上下文。通常它会告诉我哪个过程导致了问题,但我的代码中没有;NetLogo本身一定有缺陷。您可以共享.nlogo文件吗?如果是的话,你能发一个链接到它吗?如果你愿意私下分享,你可以把它寄到bugs@ccl.northwestern.edu.Also,在弹出的错误对话框中,应该有一个显示内部详细信息复选框。你能检查一下,然后把它显示的完整文本贴出来吗?这里可能有一些线索。@SethTisue internal details显示此消息如果仔细阅读问题和注释,您将看到生成错误的行没有被调试器标记。因此,不能遵循您的一般建议,因为不清楚需要正确定义哪些列表。OP正在寻求有关如何识别问题发生在何处的建议。另外,这个问题已经问了将近四年了,添加一个答案会将问题提升到新列表的顶部,这浪费了那些没有注意到问题年龄的人的时间。@JenB对此表示抱歉,但这种语言的问题似乎介于两者之间,我认为错误没有出现是有原因的,我已经在我的答案中添加了这一点。如果仔细阅读问题和注释,您将看到生成错误的行没有被调试器标记。因此,不能遵循您的一般建议,因为不清楚需要正确定义哪些列表。OP正在寻求有关如何识别问题发生在何处的建议。另外,这个问题已经有将近四年的历史了,添加一个答案将这个问题提升到新列表的顶部,浪费了那些不注意问题年龄的人的时间
JenB对此表示抱歉,但这种语言的问题似乎介于两者之间,我认为错误没有出现是有原因的,我已经在我的答案中添加了这一点。