Jav*_*mae 8 ruby ruby-on-rails
我刚刚在Rails应用程序中遇到以下代码行:
scope :for_uid, ->(external_id) { where(external_id: external_id) }
Run Code Online (Sandbox Code Playgroud)
什么是->运营商意味着什么?这对谷歌来说很难.
Mar*_*pka 15
这是语法糖.
->(external_id) { where(external_id: external_id) }
Run Code Online (Sandbox Code Playgroud)
等于:
lambda { |external_id| where(external_id: external_id) }
Run Code Online (Sandbox Code Playgroud)
该->运营商在Ruby 1.9中引入旧的简写语法lambda功能.它的行为几乎与lambda函数相同,但允许您指定块外的参数:
lambda {|param| puts param }
# becomes
-> (param) { puts params }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2336 次 |
| 最近记录: |