为什么最后一行打印两次?

时间:2015-09-01 03:54:51

标签: ruby

当我运行此方法时,会给出出生年份的最后一行打印两次。

def birth_year
  p "Give me a name, any name!"
  name = gets.chomp.capitalize
  p "Now, how old is #{name}?"
  age = gets.chomp.to_i
  p "#{name} was born in #{2015 - age}!"
end

我的语法有问题吗?我能做错什么?

1 个答案:

答案 0 :(得分:3)

运行时没有错误的代码意味着您的语法没有任何问题。但是,在chomp之前调用to_i是多余的,这是一种不好的做法。

也许你在irb中调用这个方法。最后一行的第一次打印是代码中最后一行p的副作用。第二个是由irb。

打印的代码的返回值