加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

更自然的方式在Ruby 1.9中调用Proc

发布时间:2020-12-17 03:22:17 所属栏目:百科 来源:网络整理
导读:我们知道,在 Ruby 1.9中有几种Proc调用方式 f =-n {[:hello,n]} p f[:ruby] # = [:hello,:ruby] p f.call(:ruby) # = [:hello,:ruby] p f.(:ruby) # = [:hello,:ruby] p f === :ruby # = [:hello,:ruby] 我很好奇,什么是更自然的方式调用Proc? “自然”可能
我们知道,在 Ruby 1.9中有几种Proc调用方式

f =->n {[:hello,n]}
 p f[:ruby]       # => [:hello,:ruby]
 p f.call(:ruby)  # => [:hello,:ruby]
 p f.(:ruby)      # => [:hello,:ruby]
 p f === :ruby    # => [:hello,:ruby]

我很好奇,什么是更自然的方式调用Proc? “自然”可能意味着更多的计算机科学 – 就像这样.

解决方法

第二种选择是目前使用最多的选项.

p f.call(:ruby)  # => [:hello,:ruby]

它使它更类似于标准方法.此外,在验证检查#call方法可用性的参数时,某些库实际上依赖于duck typing.在这种情况下,使用#call可确保您可以提供响应#call的lambda或任何其他对象(包括Class).

机架中间件就是这种惯例的一个很好的例子.基本中间件可以是lambda,也可以通过使用类来提供更复杂的逻辑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读