Ruby - массив с индексами - PullRequest
2 голосов
/ 26 июня 2011

как мне сделать в Ruby массив с индексами? Мой кастом из PHP выглядит примерно так:

@ my_array = [0 => "a", 3 => "bb", 7 => "ccc"]

И этот массив я хочу пройти через each_with_index , и я хотел бы получить результат, например, в форме:

0 - a
3 - bb
7 - ccc

Может кто-нибудь помочь мне, как это сделать? Спасибо

Ответы [ 3 ]

4 голосов
/ 26 июня 2011

В рубине они называются хэшами.

h = { 0 => "a", 3 => "bb", 7 => "ccc" }
h.each {|key, value| puts "#{key} = #{value}" }

Ссылка с кучей примеров здесь: Hash.

1 голос
/ 26 июня 2011

Массивы в ruby ​​уже имеют индексы, но если вы хотите ассоциативный массив с индексом по вашему выбору, используйте Hash:

@my_array = {0 => "a", 3 => "bb", 7 => "ccc"}
1 голос
/ 26 июня 2011

Вам не нужен массив, вы хотите использовать хеш. Так как ваши индексы не являются последовательными (как они должны были бы / должны быть при использовании массива), используйте хеш-код, например:

@my_hash = { 0 => 'a', 3 => 'bb', 7 => 'ccc' }

Теперь вы можете перебирать его так:

@my_hash.each do |key, value|
  num = key
  string = value
  # do stuff
end
...