设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1426|回复: 3

小弟自学钻研脚本,遇到了困难,高手快来救命~

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
4 小时
注册时间
2006-10-4
帖子
12
发表于 2008-7-4 07:06:43 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
     我是看软件附带教程的,有个地方这样说:
=============================================================================
实变量属于个体对象的变量称为实变量。名称以 @ 开头的变量,自动作为实变量使用。局部变量只有在 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                  # => 我是艾力克斯

=================================================================================
我的疑问是,为什么要连续两次定义方法呢,要是两次定义,不是后次有效吗?那第一次不是白写了?

在调用的时候(如倒数第2行)直接用  alex.@name= "埃力克斯"    不是更好吗?

而且第2次 def~end 怎么写来写去都是name啊?好乱啊,谁可以为我解释一下?

第2次 def~end 中和def同行的应该是被定义的方法名称吧?怎么弄了个 name=(name) 这样的赋值式出来了?谁又解释一下啊?

万分感谢了,学到这里,我差不多也做了一本练习本的笔记了。
版务信息:本贴由楼主自主结贴~
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
49
在线时间
0 小时
注册时间
2007-7-1
帖子
552
发表于 2008-7-4 07:10:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

酱油的

梦石
0
星屑
930
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

发表于 2008-7-4 07:18:34 | 显示全部楼层
class Person
def name
# 通過 .name 方法去讀取本類的 @name 屬性
   return @name
end
def read
   return @name
end
def name=(val)
# 通過 name= 方法去改寫本類的 @name 值
# ( )當中的只是一個參數,用來傳遞數值用的,不要被名字迷惑
   @name = val
   p 'now you are using name=( ) method '
end
def write=(a)
   @name = a
end
end
person = Person.new
p person.@name #=>Error ! Undefined method '@name' for Person
p person.name  #=> nil
p person.read  #=> nil
p person.name = 100 #=> 100, 'now you are using name=( ) method '
p person.name  #=> 100
p person.read  #=> 100
p person.write = 200 #=> 200
p person.name  #=> 200
p person.read  #=> 200

不過...其實
.instance_variable_get('@name')
.instance_variable_set('@name'. 'orz')
會比較快 = =
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
4 小时
注册时间
2006-10-4
帖子
12
 楼主| 发表于 2008-7-4 22:07:29 | 显示全部楼层
十分感谢,我要把他抄在我的本子上,这样就用够一本了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 06:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表