Вы получите его через 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
является массивом
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"
(обратите внимание на кавычки).