Project1
标题:
学脚本时遇到的问题
[打印本页]
作者:
114133542
时间:
2008-3-26 17:20
标题:
学脚本时遇到的问题
class Person 定义一个新类
def name 定义一个新函数name
return @name 函数内容是@name实变量
end
def name=(name) name=(name)什么意思?
@name = name @name = name什么意思?
end
def hello 定义一个方法hello
print "我是" + @name + ""
end
end
alex = Person.new
alex.name = "艾力克斯"
alex.hello # => 我是艾力克斯
上面的示例是先准备 @name 实变量,使用 name、name= 方法把对象附加上 @name 实变量作为属性。像这样的方法称为附加属性。
这是我在看脚本基础时遇到的问题虽然有解释但时还时弄不明白
def name=(name) |
@name = name | 主要就时这个地方看不懂 两个name到底有什 不一样
end |
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
暴风の龙
时间:
2008-3-26 17:23
def name=(name) |
@name = name | 主要就时这个地方看不懂 两个name到底有什 不一样
end |
没什么不一样……
第一个name是这个定义的名称 第二个是变量
作者:
dbshy
时间:
2008-3-26 17:25
alex = Person.new
就是生成一个Person类的实例叫alex
这个实例可以调用在Person类中定义的方法
alex.name = "艾力克斯"
让alex这个实例执行name=(name)这个方法
就是将"艾力克斯"代入@name
最后让alex执行hello这个方法
输出 我是艾力克斯
作者:
snakeqx
时间:
2008-3-26 18:18
def name=(name) |
@name = name | 主要就时这个地方看不懂 两个name到底有什 不一样
end
这里只需要高清楚什么是什么就行了。
稍微改一下。
def M_name=(name)
@name=name
end
m_name 是一个方法的名字
name 是一个临时的变量,是方法m_name的参数,也就是传给这个方法的信息,在使用完之后内存就被释放掉。
@name 是一个实例变量,只要person这个对象(object)存在,他就一直呆在内村里。
这样解释懂得了么?
我写代码一直把方法用m_开头,这样我就知道什么是变量,什么是方法。程序的可读性就好点。 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1