Ruby некорректное управление массивами - PullRequest
1 голос
/ 13 ноября 2010

У меня есть следующий фрагмент кода:

nonce = data.scan(/nonce="(.*)"/)

data является строкой, соответствующий фрагмент строки присваивается переменной nonce, которая автоматически становится массивом.Теперь, если я

puts nonce[0]

, я получу правильное значение:

51d8852d

, но если использовать:

puts "final string #{md1}:#{nonce[0]}:#{md2}"

, вывод будет:

df49f55acfd9d21837fd840644f251b4:["51d8852d"]:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7

но не должно быть скобок или двойных кавычек, я должен получить только значение массива.Это должно быть примерно так:

df49f55acfd9d21837fd840644f251b4:51d8852d:3b7718806908d2a4456086be7daba94ccd36ea19fd2bfa80ae41fa8be23433b7

Не могли бы вы подсказать, как решить эту проблему?Спасибо

Давид

1 Ответ

3 голосов
/ 13 ноября 2010

Когда вы используете сканирование с группой захвата, результатом является массив массивов, поэтому вы хотите использовать nonce[0][0].Вы запутались, потому что ваш первый пример подает nonce[0], который является массивом, в puts, который обрабатывает массивы, распечатывая каждый элемент.Если вы сделаете puts nonce[0].class, вы увидите ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...