有沒有一種方法可以凝結成凝結成一行的行,用於檢查數組是否存在並創建並清空一個,以及將新元素推入它?將一個元素添加到可能不存在的數組中的一個襯墊
hash = {}
(('a'..'z').to_a+('a'..'z').to_a).shuffle.each do |e|
hash[:"#{e}"] ||= []
hash[:"#{e}"] << rand(10)
end
我期待更多的東西風格的「|| =」,但對於「< <」操作數 感謝您的幫助
有沒有一種方法可以凝結成凝結成一行的行,用於檢查數組是否存在並創建並清空一個,以及將新元素推入它?將一個元素添加到可能不存在的數組中的一個襯墊
hash = {}
(('a'..'z').to_a+('a'..'z').to_a).shuffle.each do |e|
hash[:"#{e}"] ||= []
hash[:"#{e}"] << rand(10)
end
我期待更多的東西風格的「|| =」,但對於「< <」操作數 感謝您的幫助
您可以定義不同的哈希值代替:
hash = Hash.new {|h, k| h[k] = []}
(('a'..'z').to_a+('a'..'z').to_a).shuffle.each do |e|
hash[:"#{e}"] << rand(10)
end
這個工作,但有一些奇怪的副作用。 – pguardiario
@pguardiario請你詳細說明一下嗎? – thebugfinder
例如,您可能錯誤地認爲hash ['foo']爲零。 – pguardiario
我無法解析ÿ我們的問題。 – sawa
我檢查了代碼,它是有效的。不知道什麼可能是錯的。我使用的是紅寶石1.9.3 – thebugfinder