首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net徽标前端嵌套列表

Net徽标前端嵌套列表
EN

Stack Overflow用户
提问于 2017-05-05 07:09:33
回答 1查看 2.1K关注 0票数 0

我试图将一段旧代码移植到最新版本( 6.0.1 ),下面的foreach循环在Net徽标4.1.3上运行良好,但是当将代码复制并粘贴到6.0.1版本时,“项目0 ?”不管用。上面写着"?“还没有定义。这一行代码应该在段中检索列表中的项。

代码语言:javascript
复制
to setup-row [row colour segments]
  foreach segments
  [
      if pycor = row * row-patches-width and
        (pxcor >= col-patches-width * (item 0 ?)) and (pxcor <= col-patches-
         width * (item 1 ?))
          [set pcolor colour
            output-print item 0 ?]
  ]
end

传入的“段”变量包含以下列表:

代码语言:javascript
复制
  setup-row  4 blue [[-8 -5] [-3 -1] [0 3] [5 9]]

如果代码工作正常,它应该用-8 (项目0 ?)检索-8。和-5与(项目1 ?)诸若此类。我在旧代码中假设的是"?“第一个列表是否从片段(-8-5)和(项目0)中检索?检索-8和(项目1 ?)找回了-5。

我试着阅读新的用户手册,找出一些类似的东西,但是没有用,或者我找错地方了。希望你们中的一些人能为我指明正确的方向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 07:54:57

是的,这在Netlogo 6.0中已经被改变了--参见过渡指南页。有关新foreach语法的更多细节,请参见字典条目。基本上,现在不用使用?,而是显式地定义要在foreach过程中使用的变量名。遵循上面的列表示例:

代码语言:javascript
复制
to foreach-example

  let ex [ [-8 -5] [-3 -1] [0 3] [5 9] ]

  foreach ex [
    [ xy_coords ] ->
    ask patches with [ pxcor = (item 0 xy_coords) and pycor = ( item 1 xy_coords) ] [
      set pcolor white
    ]
  ]

end

在这里,我明确声明列表项将在整个过程中被称为"xy_coords“。这是一个很好的更改,允许更易读的代码,因为您的变量可以有更有意义的名称。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43798668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档