ruby - 显示用户年龄

标签 ruby

我需要询问用户他们的出生年份,然后显示从出生年份到 2017 年的每一年以及每一年的年龄。

我从这个开始:

puts "when are you born (year) ?"
birth_year = gets.to_i
birth_year.upto(2017){ |birth_year| puts birth_year }

我错过了显示年龄的部分。我尝试了一些东西,比如:

puts birth_year.upto(2017) - birth_year

但是没有用。

最佳答案

您可以像这样使用不同形式的 block :

puts "when are you born (year) ?"
birth_year = gets.to_i    
birth_year.upto(2017) do |iterating_year|
  puts "Year: #{iterating_year}"
  puts "Age: #{iterating_year - birth_year }"
end

或者,如果您希望所有内容都在同一行中,请试试这个 - 但它的可读性较差:

birth_year.upto(2017) { |iterating_year|  puts "Year: #{iterating_year}"; puts "Age: #{iterating_year - birth_year }" }

命名 block 变量

  • 建议:不要在 block 中使用与 block 外相同的变量名称 - 这只会造成混淆。在这种特殊情况下,使用您编写的代码,您在 block 外定义的 birth_year 将超出范围,并且 block 参数将采用迭代年值:2001, 2002年、2003年等

Same and confusing - avoid

字符串插值

这是将字符串连接在一起的时候。您可以使用的一种方法是在字符串中编写一些 ruby​​ 代码——您需要一个散列标记和打开和关闭大括号才能使其工作。参见 this link for more信息或谷歌“ruby string interpoloation”。

关于ruby - 显示用户年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382431/

相关文章:

ruby-on-rails - 删除由匹配双括号分隔的子字符串的正则表达式

ruby-on-rails - 请升级到 Ruby 1.9.3 或更新版本以继续

Ruby 日期时间和纪元转换

ruby-on-rails - 为什么我不能在 Rails 中的链接内连接字符串?

ruby-on-rails - Heroku 找不到 CoffeeScript 源 1.1.3

ruby - define_method 中的动态方法调用

ruby-on-rails - 在 MongoDB 中存储数据的有效方法 : embedded documents vs individual documents

sql - 如何使用 ActiveRecord 编写连接查询?

Ruby 构建器模式或库

ruby - 如果使用 rails-api gem,如何使 rails 表单提交。未定义的方法`protect_against_forgery?