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

Project1

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

[已经解决] 请问这里的冒号代表着什么

[复制链接]

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

1
发表于 2020-1-5 00:39:32 | 显示全部楼层
冒号开头是符号字面量的生成方式

ruby中,符号(Symbol)是一种不可变(immutable)的对象
感性认识上可以将符号与字符串做对比,例如:main 与 "main"

由于符号的不可变以及相比常量来说用起来方便,在ruby中被大量用作重要内容的“标识”
例如,所有的方法在定义时,就同时保存了一份以方法名为内容的符号
正因如此,符号也可以用来象征同名的方法
在 alias :main_lsrs1 :main 这句中,就是为main起了一个别名main_lsrs1
相当于另外定义了一个方法叫main_lsrs1,做着和main一样的事

至于双冒号::,那是对类(模块)内容的访问操作符,可以类比点.
只不过,点无法访问类里的常量,因此规范上来说,调用类方法用.而读取类常量用::

例如一个类Window_Base,它的内部定义了一个常量WLH,而其他的类想要访问WLH的值
那就要用Window_Base::WLH来告诉解释器,让它到Window_Base里面去找WLH,因为只有那里才有

又假如有一个模块RPG,它的内部定义了一个类叫BaseItem,由于类名是一个常量,
因此在模块外要引用BaseItem就要写RPG::BaseItem,例如生成一个实例 bi = RPG::BaseItem.new

点评

非常感谢解答!内容有点深度,我要多学下  发表于 2020-1-5 18:54

评分

参与人数 2星屑 +70 +2 收起 理由
RyanBern + 70 + 1 认可答案
taeckle + 1 大神威武!

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 17:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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