[英]Ruby: Incrementing within a Method
我試圖創建一個CLI算術測驗程序,並且難以將分數保持在方法范圍內。 每當我嘗試增加score變量(已聲明)時,都會收到以下錯誤消息。
main.rb:17:in `ask': undefined method `+' for nil:NilClass (NoMethodError)
from main.rb:23:in `<main>'
該代碼粘貼在下面。 我相信我需要使用'return'語句進行增量,但是我不確定這是如何工作的。 (即使這不是問題,我仍然歡迎任何人提供的任何幫助來解釋您如何使用布爾返回值進行計數。)
def ask(question, answer)
print question
user_answer = gets.chomp
if user_answer == answer
puts "Correct!"
score += 1
else
puts "Wrong! The answer was #{answer}"
end
end
您的得分變量未聲明。 你沒有表現出類實現,但我建議你使用attr_writer :score
(或attr_accessor :score
如果你想get和set VAR)和設定初始值initialize
方法。
方法內的所有局部變量僅在方法內可見。 類變量具有更高的可見性,因此將score
重命名為@score
(方法內部和外部)應該是一種補救方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.