查看: 1760|回复: 1

[已经解决] attr_reader 的作用以及三种括号的区别

[复制链接]
梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-12-3
回帖
42
发表于 2014-12-15 18:48:22 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 VIPArcher 于 2014-12-15 19:43 编辑

  attr_reader   :status_window            # 状态窗口
  attr_reader   :item_window              # 物品窗口

这个 : xxx是什么意思啊?不太明白 : 的作用
还有
@@xxxxx
的@@又是怎么一个意思啊。。。

对了……还有……{} [] ()这三个括号有什么区别啊。。。经常看见
xxxx{xxx}xxx  
xxxx[,xx[,xx]]

xxx(xx)还能理解()中的xx是是参数。。。另外两种括号是什么意思呢。。。

新手小菜鸟,目前还在RGSS3的语法中晕头转向ING。。。还望各位前辈不吝赐教

帮你改了一个标题 —— VIPArcher留

点评

{:5_164:}我咋觉得你应该去找ruby的语法基础的书看看…… :后面是实例变量的变量名,你可以简单的理解成:开始为实例变量的标志。  发表于 2014-12-15 18:53
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2014-12-15 19:06:09 | 显示全部楼层
问题1,attr_reader :相当于定义了一个读取的方法,这样对于这个类的对象,使用原点运算符'.'+名称可以读取到相应的实例变量@xx
相当于在该类中定义了这个方法:
def xx
  return @xx
end
问题2,@@xx是类变量,也就是属于整个类的变量,而不单独属于某个对象。
问题3,这些括号有不同的含义
():表示函数调用,或者是改变运算次序
[]:Indexer索引器,表示数组
{}:代码块,内嵌表达式#{xxx}(用于正则表达式内部或字符串内部),表示Hash表
至于你说的[xx[,xx[,xx]]]这个不是语法,而是表示默认参数的写法,不能用于代码中(i.e.F1书中的记号)。
例如:f(a[,b])表示方法f有两个参数,第二个参数可以不写。能看懂这个意思就好

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部