下面的->运算符叫什么? - >(…) ... 结束 下面的片段不是等价的吗? 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。
推荐文章
- 如何在Rails中找到当前的路由?
- 在Ruby中->运算符叫什么?
- Rails参数解释?
- Ruby中DateTime和Time的区别
- 如何从代理服务器后面更新Ruby Gems (ISA-NTLM)
- 如何用另一个键替换哈希键
- attr_accessor和attr_accessible的区别
- 如何从Ruby文件路径中获得没有扩展名的文件名
- rvm安装失败:“rvm不是一个函数”
- 学习Ruby on Rails
- Ruby中的数组切片:解释不合逻辑的行为(摘自Rubykoans.com)
- 如何分割一个带分隔符的字符串在Ruby和转换为一个数组?
- 在shell脚本中使用$()而不是反引号的好处是什么?
- ASP。NET“特殊”标签
- 我如何在Ruby中解析YAML文件?