Как напечатать позиции в индексе массива в Ruby - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь присвоить номер каждой букве алфавита и напечатать строки, используя числа от 0 до 25.

Создание массива: alphabet = ('A'..'Z').to_a

Печатный массив: puts alphabet[6,8].join дает мне вывод GHIJKLMN, что не то, что я ожидал.Ожидается, что он напечатает: GI

Кроме того, если я попытаюсь: puts alphabet[6,8,15].join Я получу следующую ошибку: wrong number of arguments (given 3, expected 1..2) (ArgumentError)

Я использую Ruby 2.3.1.Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 20 марта 2019

Array#[] довольно универсален.Вы можете передать индекс:

alphabet[6] #=> "G"

индекс и длину:

alphabet[6, 2] #=> ["G", "H"]

или диапазон:

alphabet[6..8] #=> ["G", "H", "I"]

Если вы хотите получить значениядля нескольких индексов есть values_at:

alphabet.values_at(6, 8, 15)
#=> ["G", "I", "P"]

, который также поддерживает диапазоны:

alphabet.values_at(6..8, 15)
#=> ["G", "H", "I", "P"]

или повторяет тот же индекс:

alphabet.values_at(2, 7, 4, 4, 18, 4)
#=> ["C", "H", "E", "E", "S", "E"]
3 голосов
/ 20 марта 2019

Вы можете использовать #values_at, чтобы получить значения массива по нескольким индексам:

alphabet = ('A'..'Z').to_a
alphabet.values_at(2, 7, 4, 4, 18, 4).join

#=> "CHEESE"

Надеюсь, это поможет!

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