@points
の代わりに@@points
というクラス変数を使用しているときに、この短いコードが動作しています。なぜこのように起こっているのだろうか?誰かが私を説明することができますか? @points
は常にnil
のようです。なぜこのインスタンス変数が増分していないのですか?
class Game
@points = 0
def start
until @points == 10
puts "Guess number between 0 and 10:"
num = gets.chomp.to_i
break if @points == 0
guess_number(num)
puts "Your score is: #{@points}"
end
end
def guess_number(num)
@points += 1 if num == rand(0..10)
end
end
game = Game.new
game.start
極小点: 'gets.chomp.to_i'は' chomp': 'gets.to_i'なしで書かれることがよくあります。 '' 123 ".to_i'、' '123 \ n" .to_i'と '' 123X456abc ".to_i'はすべて' 123'を返します。 [String#to_i](http://ruby-doc.org/core-2.3.0/String.html#method-i-to_i)を参照してください。「有効な数字の最後を過ぎた余分な文字は無視されます。 " –