我对 Ruby 有点陌生,并且在学习哈希时遇到了问题。我有一个哈希,其中包含本月内的几个月和几天。我需要打印每一个有 31 天的。
months = {
"MAR" => 31,
'APR' => 30,
'MAY' => 31,
'JUN' => 30
}
Run Code Online (Sandbox Code Playgroud)
您可以使用:
months.select { |_month, days| days > 30 }
Run Code Online (Sandbox Code Playgroud)
前者为您提供符合条件 ( days > 30) 的所有结果。
以下是文档:
获得所需的值后,您可以将它们打印到控制台(或根据需要输出),例如
long_months = months.select { |_month, days| days > 30 }
long_months.each { |month, days| puts "#{month} has #{days} days" }
Run Code Online (Sandbox Code Playgroud)
话虽如此,在打印结果之前分配一个值意味着两个循环,而这可以使用简单的方法在一个循环中实现each:
months.each do |month, days|
puts("#{month} has #{days} days") if days > 30
end
Run Code Online (Sandbox Code Playgroud)
这会更有效率,因为涉及的流失更少:)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |