Project1

标题: 请教ruby语言中几种符号的意义和用法 [打印本页]

作者: taeckle    时间: 2019-7-30 07:41
标题: 请教ruby语言中几种符号的意义和用法
目前咱知道“@”表示“局域性定义”,“$” 表示全局,“!” 表示“非”,“?”表示“判断一下”
还有几个符号比如“[]”  “@@” ,“{ }”  “||” 就不知道是啥意思了。。

还有那个“.” 和 “_” 的区别是什么啊?感觉 “.” 就好像英语里的 “ s' ”  “_” 就好像英语里的“of”,可不可以这么理解啊?
作者: hyrious    时间: 2019-7-30 09:00
不要逐字翻译,一个 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 这个方法
复制代码

_(下划线)是一个合法的变量名
作者: 灯笼菜刀王    时间: 2019-7-30 09:36
其实F1里有介绍, 不过F1不能搜索符号, 所以想查看比较麻烦

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1