簡體   English   中英

Ruby:方法中的增量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM