30/09/2018, 19:12

Sự khác nhau giữa Hash.new(0) and {} trong Ruby

Em có 2 đoạn mã này:
[4, 8, 15, 16, 23, 42].inject(Hash.new(0)) { |a, i| a.update(i => i) }

def occurrences(str)
	str.scan(/w+/).inject(Hash.new(0)) do |build, word| 
  	build[word.downcase] +=1
  	build
	end
end

Nhưng chỉ ở phần 1 thì em thay thế Hash.new(0) thành {} thì không lỗi nhưng ở phần 2 thì lại lỗi. Giải thích giùm em ạ, em cảm ơn rất nhiều

Bài liên quan
0