类中变量的问题

类中变量的问题

大家好,我是一名php?name=Java" onclick="tagshow(event)" class="t_tag">Java程序员,刚刚开始接触php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby,在学习变量的时候碰到这样一个问题,比如有一个类:
class Test
  #@count=0 --- undefined method "+" for nil:NilClass
  def initialize
   @count = 0
  end

  def index
晕,没贴完整,完整的问题如下:

大家好,我是一名Java程序员,刚刚开始接触Ruby,在学习变量的时候碰到这样一个问题,比如有一个类:

[Copy to clipboard] [ - ]


[Copy to clipboard] [ - ]
忘记了,这里有api查询
http://www.ruby-doc.org/core/classes/Module.html#M001704
ruby中的实例变量虽然不用事先定义,就可以拿来直接使用,且默认初始化值是nil,但是并不表示就可以直接放在class的方法之外定义,对与java而言,在class中定义定义一个成员变量不是也要先声明它是一个变量对么?比如java中的

[Copy to clipboard] [ - ]
非常感谢大侠的解释,感觉清楚一些了,这个过程好像有些类似Java中的static block,但是不同的是Ruby执行完这些代码后,不管执行了什么,哪怕是定义了变量的值,这些值在class load后也不复存在了,不对这个类available了,这样解释对吗?

另外,如果我在几个类中都require这个类,这部分代码会被执行几次?只是在第一次require的时候被执行,还是每次都执行?也就是说是不是Ruby是不是在每次遇到require的时候都要重新加载这个类?


[Copy to clipboard] [ - ]
可以进一步观察这个"require"方法,他是Kernel的一个方法
http://corelib.rubyonrails.org/classes/Kernel.html#M002060
而Kernal在ruby执行环境中被混入到Object中,所以每次执行require这个方法,其实是在跟ruby的执行环境以及全局类加载器打交道
还用Martin的例子

[Copy to clipboard] [ - ]
多谢各位的解答,非常透彻了,我是初学Ruby,以后还会有很多问题 ;D