countries = Hash[ "north" => "nl", "no", "uk" "south" => "sp", "fr", "it" "east" => "ru", "bl", "bg" ]
紅寶石多哈希隨機值
我怎樣才能得到一個隨機值對每個元素(北,南,東)?
非常感謝你
countries = Hash[ "north" => "nl", "no", "uk" "south" => "sp", "fr", "it" "east" => "ru", "bl", "bg" ]
紅寶石多哈希隨機值
我怎樣才能得到一個隨機值對每個元素(北,南,東)?
非常感謝你
下面是使用Array#sample
方式:
countries = {"north" => ["nl", "no", "uk"], "south" => ["sp", "fr", "it"], "east" => ["ru", "bl", "bg"] }
countries.map { |_,v| v.sample } # => ["nl", "it", "bg"]
countries.map { |_,v| v.sample } # => ["uk", "it", "bg"]
一個好的做法是使用'| _,v |'來避免創建一個未使用的局部變量。 –
@MarkThomas是的,首先我做了'| k,v |',之後你的句子進入了我的大腦,所以我刪除了'k',並將它作爲'| _,v |'。感謝您的審查。 –
好的,謝謝! countries.map {| _,v | v.sample} .each do | variable | puts變量 結束 如何爲每個循環打印每個元素(北,南,東)? 即。放置「{#...}#{變量}」 – user476918
替代奧雅納的答案。
countries = {"north" => ["nl", "no", "uk"], "south" => ["sp", "fr", "it"], "east" => ["ru", "bl", "bg"]}
countries.values.map(&:sample)
雖然你'國家'哈希不是一個合適的哈希語法。 –
請注意'v.sample'與'v [rand(v.size)]'相同。 –