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

Project1

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

[已经过期] 我一直搞不懂 定义实例变量

[复制链接]

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
跳转到指定楼层
1
发表于 2013-7-20 15:01:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
attr_reader   :common_event_id
attr_accessor :fade_type      

这2个 有什么区别


还有 定义实例变量  和非 定义实例变量  又是干嘛的


还有 发现 @这个 在没 定义实例变量 一样能用

  $这个全局变量 好像 随便 什么字母 就可以 调用
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

2
发表于 2013-7-20 15:55:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
发表于 2013-7-20 16:45:17 | 只看该作者
attr_accessor :abc 与
def abc
return @abc
end
差不多吧?

点评

求accessor  发表于 2013-7-20 19:05
那是reader  发表于 2013-7-20 17:49
回复 支持 反对

使用道具 举报

Lv4.逐梦者

送快递的水表员

梦石
10
星屑
4852
在线时间
3303 小时
注册时间
2012-6-27
帖子
7160

开拓者贵宾

4
发表于 2013-7-20 21:46:55 | 只看该作者
本帖最后由 Password 于 2013-7-20 21:48 编辑

attr_reader   :  read only # 只能读取,不能进行修改
attr_writer    : write only #只能进行修改,不能读取,不过貌似不常用
attr_accessor : both read and write #既能读取,也能进行修改

关于accessor和reader引发的不同,可以参见这帖:http://rpg.blue/thread-320728-1-1.html

点评

看了 这个帖子 有点明白 attr_reader 这个像怪的ID 就是无法修改的  发表于 2013-7-21 06:14
那没经过 实例变量 能干嘛 直接@a 这样 能修改能读?  发表于 2013-7-21 06:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1175
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

5
发表于 2013-7-20 22:04:18 | 只看该作者
简单来说,因为实例变量只能在类内部访问到(面向对象的程序设计哲学)。然后为了操纵到这些实例变量,就需要通过类提供的方法来折衷地实现。
  1. class A
  2.   def a=(v)
  3.     @a = v
  4.   end
  5. end

  6. o = A.new
  7. o.a = 1 # 可以通过a=这个方法来设置实例变量@a
  8. o.a # NameError, A中没有定义a方法
复制代码
但是,为每一个实例变量都这样弄太麻烦了,于是就提供了attr_系列方法。他帮你创建操纵这些实例变量的方法。

这样一说。你再看上面的帖子应该就能明白了。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 03:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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