2015-09-01 125 views
-1

當我運行這種方法時,出生年份的最後一行被打印兩次。爲什麼最後一行打印兩次?

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

你打電話給你的方法怎麼樣?我無法重現您的問題。 –

回答

3

運行時沒有錯誤的代碼意味着您的語法沒有任何問題。然而,在to_i之前調用chomp是多餘的,這是一種不好的做法。

也許你在irb中調用這個方法。最後一行的第一次打印是代碼中最後一個p的副作用。第二個是由irb打印的代碼的返回值。