level 4
发帖不能再编辑
楼主
实变量属于个体对象的变量称为实变量。名称以 @ 开头的变量,自动作为实变量使用。局部变量只有在 def ~ end 等结构内部使用时才有效,然而使用实变量的话,只要其对象存在,变量的值就会被保存。实变量一般作为对象的属性来使用。class Person def name return @name end def name=(name) @name = name end def hello print "我是" + @name + "" end end alex = Person.new alex.name = "艾力克斯" alex.hello # => 我是艾力克斯 上面的示例是先准备 @name 实变量,使用 name、name= 方法把对象附加上 @name 实变量作为属性。像这样的方法称为附加属性。附加属性也能更简单的像下面那样编写。 attr_accessor :name 这样编写是,自动定义与 : 符号右侧名称相同的实变量对应属性的取得和注解方法。上例中是生成 @name 实变量并附加成为属性。总之, def name return @name end def name=(name) @name = name end 是与上面相同的意思。在预置脚本中 attr_accessor 应用得很多。但在只定义属性的取得方法的情况下,一般使用 attr_reader 代替 attr_accessor。
这一段,虽然明白直接用后面那个attr可以直接定义属性,但是还是不懂他定义那两个函数的作用,求详细解释,谢谢!
2012年07月07日 11点07分
1
这一段,虽然明白直接用后面那个attr可以直接定义属性,但是还是不懂他定义那两个函数的作用,求详细解释,谢谢!