谁能告诉我如何获取第n个值,例如以下调试器输出中的children[0]
中的第3个val(即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
答案 0 :(得分:0)
您可以通过children[0][:bitstring][2]
来获得它,可以从调试器输出中轻松看到。
调试器输出的结构形式为variable_name = {Class} value
的列表,其中{Class}
是值的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
是一个数组children[0]
是哈希值children[0][:bitstring]
是一个数组children[0][:bitstring][2]
是:bitstring
数组的第三个元素,其值是整数1
您知道哈希键是:bitstring
而不是"bitstring"
的方式是,对于哈希,每个元素本身就是key
和value
的集合,因此您会看到在bitstring => Array (100 elements)
行下有2行,一条以key
开头,另一条以value
开头。 key
列为{Symbol} bitstring
,告诉您符号:bitstring
。如果键是字符串,则只会说key = "bitstring"
(请注意引号)。