下面的->运算符叫什么? - >(…) ... 结束 下面的片段不是等价的吗? 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。
推荐文章
- 在Ruby中不创建新字符串而修饰字符串的规范方法是什么?
- RVM不是一个函数,用' RVM use…’不会起作用
- 了解Gemfile。锁文件
- 如何确定一个数组是否包含另一个数组的所有元素
- 是什么导致这个ActiveRecord::ReadOnlyRecord错误?
- 最好的打印散列的方法
- Rails:dependent =>:destroy VS:dependent =>:delete_all
- 我可以在不包含Ruby模块的情况下调用实例方法吗?
- 把if-elif-else语句放在一行中?
- 如何将新项目添加到哈希
- 测试一个Ruby类是否是另一个类的子类
- 什么时候使用Struct vs. OpenStruct?
- 数组到哈希Ruby
- 我如何让红宝石打印一个完整的回溯而不是截断一个?
- Javascript函数前导bang !语法