3

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

p = lambda &:upcase

进入Procp但我找不到使用->. 这:

p = -> &:upcase

不工作,当然。

4

1 回答 1

1

显然,它不受支持。

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

我想不出为什么这样的事情-> &:method是不可能的,但到目前为止,Ruby 语言的语法根本不允许这样做。

于 2012-06-13T16:17:03.547 回答