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)]'相同。 –