Я пытаюсь решить проблему, в которой я хочу использовать ha sh для записи индексов каждого символа, появившегося в массиве.
def dupe_indices(arr)
hash = Hash.new {|h,k| []}
arr.each.with_index do |char,idx|
hash[char] << idx
end
return hash
end
Странно то, что, несмотря на hash[char]
инициализируется как пустой массив, hash[char] << idx
не будет работать. Ха sh окажется пустым: {}
.
Я могу решить эту проблему, либо инициализировав га sh, используя Hash.new {|h,k| h[k] = []}
, либо изменив hash[char] << idx
на hash[char] = hash[char].push[idx]
для назначения.