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 的
! 方法
,例如:
a = true
p !a #=> false
def a.!
42
end
p !a #=> 42
复制代码
e! 是一个整体,表示名叫 e! 的方法,此时叹号或问号只能放在方法名的最后,习惯上来说,带叹号的方法会破坏性地修改上下文或自身,带问号的方法通常是进行一个真假的询问,注意只是习惯上,具体定义还是作者说了算,例如:
def e!
42
end
p e! #=> 42
复制代码
单独一个 [] 表示空数组,当它接到 e 后面时,表示调用 e 的 [] 方法,常见的数组和哈希表的“用下标/key访问”本质上都是在调用 [] 方法,例如:
a = nil
def a.[](x)
x
end
p a[1] #=> 1
复制代码
类似的,a[x] = y 表示调用 a 的 []= 方法;
单独一个 {} 表示空哈希表(Hash),当它接到方法调用后面时,表示传入一个块(block)参数,例如:
def f
yield + 1
end
p f { 42 } #=> 43
复制代码
当作为块参数时,do .. end 和 { .. } 除了优先级不同外是等效的;
.(一个点)表示“调用”,它的前面是一个对象,后面是该对象拥有的方法名,例如:
class A
def a # 这里,a 是一个方法名
end
end
a = A.new # 调用了 A 这个对象里的 new 这个方法,这个内置方法产生一个 A 的实例
a.a # 调用了 a 这个对象里的 a 这个方法
复制代码
_(下划线)是一个合法的变量名
作者:
灯笼菜刀王
时间:
2019-7-30 09:36
其实F1里有介绍, 不过F1不能搜索符号, 所以想查看比较麻烦
想查询符号和语法的话, 可以参考这里
菜鸟教程网
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1