Tom*_*ert 2 ruby ruby-on-rails friendly-id
我在浏览Friendly_id宝石的代码库,我发现线与分配如下:
@defaults ||= ->(config) {config.use :reserved}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
->做了什么,它意味着什么?谢谢您的帮助
kid*_*ils 12
这表示lambda.有了这个,您将锁定一个匿名函数,该函数接受参数配置并使用该变量计算块.
上述表达式也可以定义为:
@defaults ||= lambda {|config| config.use :reserved}
Run Code Online (Sandbox Code Playgroud)
Proc类似于lambdaRuby,除了返回和中断模式的差异很小.Proc可以被称为保存为对象的块,而lambda是保存为对象的方法.他们找到了功能编程的根源.
简而言之,lambda是一个命名过程,可以保存为对象,稍后可以调用.
inc = ->x{ x + 1 }
inc.call(3)
#=> 4
Run Code Online (Sandbox Code Playgroud)
一个常见且有趣的例子lambda是Rails Scope,其中一个方法在名称范围内简单地分配为lambda,稍后可以在ActiveRecord查询时用作动作.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |