首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解释此调试器输出?

如何解释此调试器输出?
EN

Stack Overflow用户
提问于 2019-01-05 15:38:43
回答 1查看 99关注 0票数 -4

谁能告诉我如何在下面的调试器输出中获取children[0]中的第n个值,假设是3val(即1)?我尝试过children[0][2],但不起作用。

代码语言:javascript
复制
children = Array (101 elements)
 [0] = Hash (1 element)
  bitstring => Array (100 elements)
   key = {Symbol} bitstring
   value = Array (100 elements)
    [0] = 1
    [1] = 0
    [2] = 1
    [3] = 1
    [4] = 1
    [5] = 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-07 08:29:38

您可以通过children[0][:bitstring][2]获得它,可以很容易地从调试器输出中看到它。

调试器输出的结构化方式是一个variable_name = {Class} value列表,其中如果值不是基元或集合,则{Class}是值的类类型,在这种情况下,该部分(包括大括号)将被省略。

value是某种类型的集合时,集合中元素的集合类型和数量显示在value所在的位置,然后从下一行开始,缩进一个额外的数量,每个元素都以accessor = value的形式列出。如果该值也是一个集合,那么同样的事情再次发生:集合类型和集合中元素的数量显示在value所在的位置,然后从下一行开始,并缩进一个额外的数量。所以当你看这个的时候:

代码语言:javascript
复制
children = Array (101 elements)
 [0] = Hash (1 element)
  bitstring => Array (100 elements)
   key = {Symbol} bitstring
   value = Array (100 elements)
    [0] = 1
    [1] = 0
    [2] = 1
    [3] = 1
    [4] = 1
    [5] = 1

你应该看到这点

  • children是Array
  • children[0]是Hash
  • children[0][:bitstring]是array
  • children[0][:bitstring][2]:bitstring数组的第三个元素,它的值是整数1

您知道散列键是:bitstring而不是"bitstring"的方法是,对于散列,每个元素本身都是keyvalue的集合,所以您可以看到bitstring => Array (100 elements)行下面有两行,一行以key开头,另一行以value开头。key被列为{Symbol} bitstring,它告诉您它是符号:bitstring。如果键是一个字符串,它就会写成key = "bitstring" (注意引号)。

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

https://stackoverflow.com/questions/54049980

复制
相关文章

相似问题

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