Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中的棘手运算符_Ruby - Fatal编程技术网

Ruby中的棘手运算符

Ruby中的棘手运算符,ruby,Ruby,我知道Ruby有很多有用的操作符,比如| |= 它还有哪些棘手的操作符 我还没有找到它的任何参考资料。太空船或比较运算符 <=> the "spaceship" or comparison operator === the "trequals" or case matching operator ==“trequals”或大小写匹配运算符 方法签名末尾的符号将抓取并期望为您创建一个块 def foo(bar, &block) block.call (bar +=

我知道Ruby有很多有用的操作符,比如
| |=

它还有哪些棘手的操作符

我还没有找到它的任何参考资料。

太空船或比较运算符
<=> the "spaceship" or comparison operator
=== the "trequals" or case matching operator
==“trequals”或大小写匹配运算符
方法签名末尾的符号将抓取并期望为您创建一个块

def foo(bar, &block)  
   block.call (bar += 1)  
end
在此表单中,还可以使用符号and来调用
到_proc
,并允许您使用符号调用
:address
方法(示例从其他地方借用)

+=
-=
这样的快捷方式很方便

不是操作员,只要有另一条捷径轨道就可以了。当foo为
nil?
false

a = foo || bar
关于“操作符”,我在这里找到了一个(非官方的)东西作为参考:

我发现是最棘手的Ruby操作符之一:

它拆分阵列:

a,b,c = *[1,2,3]
或构建一个数组:

*a = 1,2,3
它也可用于
案例
语句:

first = ["one", "two"]
second = ["three", "four"]

case number
  when *first
    "first"
  when *second
    "second"
end
它可以用作varargs的函数参数:

def stuff *args
   args.join('|')
end

由于它同时用于(拆分和创建数组),所以在使用它之前,我必须检查语法。它可以用于很多目的(如将散列转换为数组),我真的很难掌握。

。至少,请查看TagRuby的FAQ部分:谢谢。foo | | bar对我来说很方便哇!Splat操作员太棒了!这使我的代码非常纯净。谢谢!这两个示例都不使用splat运算符,但更有趣的示例是在“解包”列表时调用函数,例如`func(*[1,2,3])。此运算符的另一个有趣用法是部分列表解包,例如,
a,*b=[1,2,3]
,在这种情况下,
b
设置为
[2,3]
def stuff *args
   args.join('|')
end