Project1

标题: 一个关于脚本实例变量问题 [打印本页]

作者: 零月殇    时间: 2009-7-12 20:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 猫哥哥    时间: 2009-7-13 04:50
本帖最后由 猫哥哥 于 2009-7-13 04:55 编辑

依稀记得,这个例子无非就是告诉你用attr_accessor:name这么定义类成员变量的读写,有多么方便= =

你看的是谁翻译的,改得这么囧……
我查看了下,日文原版是这么写的:
  1. class Person
  2.   def name
  3.     return @name
  4.   end

  5.   def name=(name)
  6.     @name = name
  7.   end

  8.   def hello
  9.     print "俺は" + @name + "だ"
  10.   end
  11. end

  12. alex = Person.new
  13. alex.name = "アレックス"
  14. alex.hello                  # => 俺はアレックスだ
复制代码
实际上,第一个函数是返回Person类里的@name的值,第二个函数则是给Person类的函数赋值。
看见倒数第二句了吗?那就是调用了第二个函数,给@name赋值了。
若是使用alex.name,不在后面用等号赋值,就是使用了第一个函数。
作者: 零月殇    时间: 2009-7-14 20:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2009-7-15 05:21
谢谢LS同志
补充一下
def name=(name) #这个定义是什么意思
零月殇 发表于 2009-7-14 06:43 AM

赋值用的
请看你LS的倒数第三句
作者: 紫苏    时间: 2009-7-15 10:57
可以参考:http://rpg.blue/viewthread.php?tid=124591




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1