谁能告诉我如何在下面的调试器输出中获取children[0]
中的第n个值,假设是3val(即1)?我尝试过children[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
发布于 2019-01-07 08:29:38
您可以通过children[0][:bitstring][2]
获得它,可以很容易地从调试器输出中看到它。
调试器输出的结构化方式是一个variable_name = {Class} value
列表,其中如果值不是基元或集合,则{Class}
是值的类类型,在这种情况下,该部分(包括大括号)将被省略。
当value
是某种类型的集合时,集合中元素的集合类型和数量显示在value
所在的位置,然后从下一行开始,缩进一个额外的数量,每个元素都以accessor = value
的形式列出。如果该值也是一个集合,那么同样的事情再次发生:集合类型和集合中元素的数量显示在value
所在的位置,然后从下一行开始,并缩进一个额外的数量。所以当你看这个的时候:
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
是Arraychildren[0]
是Hashchildren[0][:bitstring]
是arraychildren[0][:bitstring][2]
是:bitstring
数组的第三个元素,它的值是整数1
您知道散列键是:bitstring
而不是"bitstring"
的方法是,对于散列,每个元素本身都是key
和value
的集合,所以您可以看到bitstring => Array (100 elements)
行下面有两行,一行以key
开头,另一行以value
开头。key
被列为{Symbol} bitstring
,它告诉您它是符号:bitstring
。如果键是一个字符串,它就会写成key = "bitstring"
(注意引号)。
https://stackoverflow.com/questions/54049980
复制相似问题