Ruby 如何将两个参数传递给具有一个参数签名的方法?

Ruby 如何将两个参数传递给具有一个参数签名的方法?,ruby,proc-object,arity,Ruby,Proc Object,Arity,one_arg如何知道&s?运算符将过程转换为块,因此它成为带块的单参数方法(使用yield调用)。如果您取消了&以便它直接传递过程,您将得到一个错误。&操作符将过程转换为一个块,因此它成为一个带块的单参数方法(使用yield调用)。如果您取消了&,这样它就直接通过了进程,那么您就会得到一个错误。通过执行&s,您告诉一个参数,您希望将进程作为块传递(如果我错了,请纠正我)。类似的文字应该是 s = Proc.new {|x|x*2} def one_arg(x) puts yield(x)

one_arg
如何知道
&s

运算符将过程转换为块,因此它成为带块的单参数方法(使用
yield
调用)。如果您取消了
&
以便它直接传递过程,您将得到一个错误。

&
操作符将过程转换为一个块,因此它成为一个带块的单参数方法(使用
yield
调用)。如果您取消了
&
,这样它就直接通过了进程,那么您就会得到一个错误。

通过执行
&s
,您告诉
一个参数
,您希望将进程
作为块传递(如果我错了,请纠正我)。类似的文字应该是

s = Proc.new {|x|x*2}

def one_arg(x)
  puts yield(x)
end

one_arg(5, &s)

这里有几个问题,所以到最近为止,我们要解决这个问题。对所有这些Ruby疯狂的复杂性有着相当好的理解。

通过执行
&s
,您告诉
one_arg
您希望您的进程
作为一个块传递(如果我错了,请纠正我)。类似的文字应该是

s = Proc.new {|x|x*2}

def one_arg(x)
  puts yield(x)
end

one_arg(5, &s)
这里有几个问题,所以到最近为止,我们要解决这个问题。对红宝石疯狂的一些复杂之处有着相当好的理解