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)
这里有几个问题,所以到最近为止,我们要解决这个问题。对红宝石疯狂的一些复杂之处有着相当好的理解