gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:22 25 4
gpt4 key购买 nike

我们知道,在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 方法的可用性时实际上依赖鸭子类型。在这种情况下,使用 #call 可确保您可以提供响应 #call 的 lambda 或任何其他对象(包括类)。

Rack 中间件是这种约定的一个很好的例子。基本中间件可以是 lambda,或者您可以使用类提供更复杂的逻辑。

关于ruby - Ruby 1.9 中更自然的 Proc 调用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com