下面的->运算符叫什么? - >(…) ... 结束 下面的片段不是等价的吗? suc = ->(x) {x + 1} suc = lambda {|x| x + 1}


在Ruby编程语言(“方法、程序、lambda和闭包”)中,使用->定义的lambda被称为lambda literal。

succ = ->(x){ x+1 }
succ.call(2)

代码与下面的代码是等价的。

succ = lambda { |x| x + 1 }
succ.call(2)

非正式地,我听到它被称为stabby lambda或stabby literal。


=> ==哈希火箭

在哈希映射文字中将键与值分开。


-> == Dash Rocket

在Ruby 1.9中用于定义lambda字面量。X(不带参数)和Ruby 2。X(带参数)。你给出的例子(->(x) {x * 2} & lambda {|x| x * 2})实际上是等价的。


->(x){…}与lambda {|x|…}。它创建了一个。A是一种proc类型,它确保传递给它的参数数量是正确的。请参见Proc::new和Kernel# Proc。