當我使用類變量@@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),其中包括「超過有效數字結尾的無關字符被忽略。 」。 –