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

Project1

 找回密码
 注册会员
搜索
查看: 3133|回复: 7
打印 上一主题 下一主题

[推荐问答] 请教一个RPG Maker XP 里的F1的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
557
在线时间
108 小时
注册时间
2012-9-30
帖子
102
跳转到指定楼层
1
发表于 2014-6-24 11:27:28 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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                  # => 我是艾力克斯

上面的示例是先准备 @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。


上面这段是F1帮助里面的原文但是我不太理解 @name = name这样定义属性是什么意思?有什么意义!

点评

要有引号……楼主先从基础的东西先看起吧……  发表于 2014-6-24 21:01

Lv2.观梦者

梦石
0
星屑
557
在线时间
108 小时
注册时间
2012-9-30
帖子
102
2
 楼主| 发表于 2014-6-24 22:27:24 | 显示全部楼层
myownroc 发表于 2014-6-24 18:21
这个有def name=(name)
于是可以通过a.name = xxxx来随意设定
如果没有,那么就不能设定……


回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-9 08:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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