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

Ruby 如何解释此调试器输出?,ruby,debugging,intellij-idea,rubymine,Ruby,Debugging,Intellij Idea,Rubymine,有谁能告诉我如何获取第n个值,比如在下面的调试器输出中的children[0]中的第3个值(即1)?我尝试了儿童[0][2],但没有成功 children = Array (101 elements) [0] = Hash (1 element) bitstring => Array (100 elements) key = {Symbol} bitstring value = Array (100 elements) [0] = 1 [1] = 0

有谁能告诉我如何获取第n个值,比如在下面的调试器输出中的
children[0]
中的第3个值(即1)?我尝试了
儿童[0][2]
,但没有成功

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

您可以通过
子项[0][:bitstring][2]
获得它,这可以从调试器输出中轻松看到

调试器输出的结构是一个
变量_name={Class}值的列表
,其中
{Class}
是值的类类型,如果它不是原语或集合,则该部分(包括大括号)被忽略

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

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
    是一个数组
  • 子项[0]
    是哈希
  • 子[0][:位字符串]
    是一个数组
  • children[0][:bitstring][2]
    :bitstring
    数组的第三个元素,其值为整数
    1

知道散列键是
:bitstring
而不是
“bitstring”
的方法是,对于散列,每个元素本身就是
键和
值的集合,因此可以看到
bitstring=>数组(100个元素)
行下有2行,一个以
键开始,另一个以
值开始。
列为
{Symbol}位字符串
,它告诉您它就是符号
:位字符串
。如果键是字符串,它只会说
key=“bitstring”
(注意引号)

看起来子项[0]中的第二个值是0,而不是1,您可以通过
子项[0][:bitstring][1]
获得它,谢谢。但实际上我在Ruby中有一个算法,我不知道语言,我需要用C++重新编写,所以首先我需要理解Ruby的语法。