非常简短的问题:是否可以使用 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 语言的语法根本不允许这样做。