[英]NoMethodError using gets.chomp in Ruby
有人可以通過這個簡單的練習幫助我嗎?
class Item
def percents()
self * 100
end
end
answer = gets.chomp
puts answer.percents()
結果是:
percents.rb:7:in `<main>': undefined method `percents' for "300":String (NoMethodError)
變量answer
必須是Item
對象才能具有percents
方法。 或者,您可以從Item
類中刪除percents
方法,並使其采用整數:
def percents(int)
int * 100
end
answer = gets.chomp
puts percents(answer)
但是,這最后一行不會像您期望的那樣幫助您。 由於gets.chomp
返回輸入的字符串,因此您將字符串 “ 300”乘以100,這意味着您的輸出將如下所示:
2.2.2 :026 > puts percents(answer)
300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300300
=> nil
您可以先使用to_i
將答案轉換為整數,然后打印百分比
2.2.2 :027 > puts percents(answer.to_i)
30000
=> nil
在那里,看起來更好。 現在,如果您想將answer
作為Item
類的對象,那將更加棘手。
class Item
def initialize(answer)
@answer = answer
end
def percents
@answer * 100
end
end
item = Item.new(gets.chomp.to_i)
puts item.percents
您的輸出將與上面相同:
2.2.2 :049 > puts item.percents
30000
=> nil
如果您還有其他問題,請告訴我,因為我不確定100%是否要編寫程序。 我建議您在學習Ruby時閱讀一些Ruby教程,例如《 二十分鍾的Ruby》或Tutorial Point的ruby教程 。 我希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.