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

Project1

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

[已经解决] 请教ruby语言中几种符号的意义和用法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2019-7-30 07:41:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
目前咱知道“@”表示“局域性定义”,“$” 表示全局,“!” 表示“非”,“?”表示“判断一下”
还有几个符号比如“[]”  “@@” ,“{ }”  “||” 就不知道是啥意思了。。

还有那个“.” 和 “_” 的区别是什么啊?感觉 “.” 就好像英语里的 “ s' ”  “_” 就好像英语里的“of”,可不可以这么理解啊?

Lv4.逐梦者

梦石
0
星屑
9682
在线时间
570 小时
注册时间
2017-9-28
帖子
208
2
发表于 2019-7-30 09:00:13 | 只看该作者
不要逐字翻译,一个 token(语义元素)要连起来看:
@abc 表示一个名叫 @abc 的实例变量
@@abc 表示一个名叫 @@abc 的类变量,一般不推荐使用;
$abc 表示一个名叫 $abc 的全局变量
!e 表示把 e 的真假值取反,调用 e 的 ! 方法,例如:
  1. a = true
  2. p !a #=> false
  3. def a.!
  4.   42
  5. end
  6. p !a #=> 42
复制代码
e! 是一个整体,表示名叫 e! 的方法,此时叹号或问号只能放在方法名的最后,习惯上来说,带叹号的方法会破坏性地修改上下文或自身,带问号的方法通常是进行一个真假的询问,注意只是习惯上,具体定义还是作者说了算,例如:
  1. def e!
  2.   42
  3. end
  4. p e! #=> 42
复制代码
单独一个 [] 表示空数组,当它接到 e 后面时,表示调用 e 的 [] 方法,常见的数组和哈希表的“用下标/key访问”本质上都是在调用 [] 方法,例如:
  1. a = nil
  2. def a.[](x)
  3.   x
  4. end
  5. p a[1] #=> 1
复制代码
类似的,a[x] = y 表示调用 a 的 []= 方法;
单独一个 {} 表示空哈希表(Hash),当它接到方法调用后面时,表示传入一个块(block)参数,例如:
  1. def f
  2.   yield + 1
  3. end
  4. p f { 42 } #=> 43
复制代码
当作为块参数时,do .. end 和 { .. } 除了优先级不同外是等效的;
.(一个点)表示“调用”,它的前面是一个对象,后面是该对象拥有的方法名,例如:
  1. class A
  2.   def a # 这里,a 是一个方法名
  3.   end
  4. end
  5. a = A.new # 调用了 A 这个对象里的 new 这个方法,这个内置方法产生一个 A 的实例
  6. a.a # 调用了 a 这个对象里的 a 这个方法
复制代码

_(下划线)是一个合法的变量名

评分

参与人数 5星屑 +100 +5 收起 理由
RyanBern + 100 + 1 醋瞎
taeckle + 1 大神威武!
灯笼菜刀王 + 1 我很赞同
百里_飞柳 + 1 我很赞同
VIPArcher + 1 赞认真的回答

查看全部评分

喵喵喵
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39021
在线时间
5719 小时
注册时间
2006-11-10
帖子
6619
3
发表于 2019-7-30 09:36:11 | 只看该作者
其实F1里有介绍, 不过F1不能搜索符号, 所以想查看比较麻烦

想查询符号和语法的话, 可以参考这里菜鸟教程网

评分

参与人数 2+2 收起 理由
taeckle + 1 多谢大神!
MCCF + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 09:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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