Ruby 如何解释此调试器输出?
有谁能告诉我如何获取第n个值,比如在下面的调试器输出中的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
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的语法。