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

Project1

 找回密码
 注册会员
搜索

“attr_accessor符号、方法、局部变量、实例变量”的异同

查看数: 2948 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-3-28 18:34

正文摘要:

本帖最后由 Vortur 于 2018-3-28 23:32 编辑 摘要   对于“attr_accessor、方法、局部变量、实例变量”,探求它们之间的关系:四个元素“attr_accessor、方法、局部变量、实例变量”进行组合,共有六 ...

回复

guoxiaomi 发表于 2018-3-28 21:26:21
本帖最后由 guoxiaomi 于 2018-3-28 21:28 编辑

可以参考一下这里的定义 http://ruby-doc.org/core-1.8.6/Module.html#method-i-attr

点评

郭大触!❤❤❤谢谢~❤❤❤  发表于 2018-3-28 21:55
喵呜喵5 发表于 2018-3-28 21:59:57
不要造定义,attr 只是个语法糖
attr_accessor 就是快速定义两个方法
def a; return @a; end
def a=(v); @a = v; end
方法什么规则它就是什么规则

点评

喵大万岁~❤原来如此...attr_accessor就是定义def...❤  发表于 2018-3-29 17:27
晴兰 发表于 2018-3-28 23:36:50
提示: 作者被禁止或删除 内容自动屏蔽
chd114 发表于 2018-3-28 21:12:59
不过ruby里所有东西都是对象吧···所以是不应该存在完全无关的情况?

点评

Sprite.width只是单纯的def width返回一个0还是在Sprite的时候就已经有设置返回初始值为0的@width了?我之前看Game_BattlerBase里面能力基础值是直接返回0的情况  发表于 2018-3-28 23:09
而是生成一个空的def width,或者说一个空的@width  发表于 2018-3-28 21:54
经过尝试,发现对象之间还是有差别的。比如在Sprite里定义attr_accessor :width,并不会直接覆盖原本的Sprite.width(原本的Sprite.width是0)  发表于 2018-3-28 21:54
孟筠欢 发表于 2018-3-28 19:00:51
提示: 作者被禁止或删除 内容自动屏蔽
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-7-17 12:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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