非常简短的问题:是否可以使用 Symbol#to_proc 速记(例如lambda(&:upcase)在 Ruby 中使用 stabby lambda 语法?例如,我可以这样说:
p = lambda &:upcase
进入Proc,p但我找不到使用->. 这:
p = -> &:upcase
不工作,当然。
非常简短的问题:是否可以使用 Symbol#to_proc 速记(例如lambda(&:upcase)在 Ruby 中使用 stabby lambda 语法?例如,我可以这样说:
p = lambda &:upcase
进入Proc,p但我找不到使用->. 这:
p = -> &:upcase
不工作,当然。
显然,它不受支持。
我认为这与实际上proc是lambda方法而不是关键字这一事实有关。它们支持我们通常关联的相同功能each以及模块中的其他方法Enumerable。但是,->它是一种特殊的语言结构,它是单独解析的。
我想不出为什么这样的事情-> &:method是不可能的,但到目前为止,Ruby 语言的语法根本不允许这样做。