符号#to_proc与stabby lambda语法的简写

时间:2012-06-12 16:03:48

标签: ruby

非常简短的问题:是否可以在Ruby中使用Symbol#to_proc速记(例如lambda(&:upcase)和stabby lambda语法?例如,我可以这样说:

p = lambda &:upcase

Proc中获取p,但我找不到使用->的等效内容。这样:

p = -> &:upcase

当然不起作用。

1 个答案:

答案 0 :(得分:1)

显然,它不受支持。

我认为这与proclambda实际上是方法而不是关键字这一事实有关。它们支持我们通常与each关联的相同功能以及Enumerable模块中的其他方法。但是,->是一种特殊的语言结构,可以单独解析。

我想不出为什么像-> &:method这样的东西不可能的原因,但到目前为止,Ruby语言的语法根本不允许它。