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