相关疑难解决方法(0)

总新手:ruby中的实例变量?

请原谅newbiew的总问题,但为什么@game_score总是为零呢?

#bowling.rb

class Bowling
  @game_score = 0
    def hit(pins)
        @game_score = @game_score + pins
    end

    def score
        @game_score
    end
end
Run Code Online (Sandbox Code Playgroud)

ruby instance-variables

13
推荐指数
3
解决办法
4128
查看次数

类定义/范围中的局部变量

我的印象是Ruby中的类定义可以重新打开:

class C
  def x
    puts 'x'
  end
end

class C
  def y
    puts 'y'
  end
end
Run Code Online (Sandbox Code Playgroud)

这按预期工作,并y添加到原始类定义中.

我很困惑为什么以下代码不能按预期工作:

class D
  x = 12
end

class D
  puts x
end
Run Code Online (Sandbox Code Playgroud)

这将导致NameError异常.为什么在重新打开课程时会启动新的本地范围?这似乎有点违反直觉.在扩展课程时,有没有办法继续以前的本地范围?

ruby scope

7
推荐指数
2
解决办法
1890
查看次数

标签 统计

ruby ×2

instance-variables ×1

scope ×1