ruby - 使用 stabby lambda 语法的 Symbol#to_proc 速记

标签 ruby

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

p = lambda &:upcase

p 中获取 Proc 但我无法使用 -> 找到等效项。这:

p = -> &:upcase

当然不行。

最佳答案

显然,它不受支持。

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

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

关于ruby - 使用 stabby lambda 语法的 Symbol#to_proc 速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000450/

相关文章:

ruby - 使用 Sinatra 安排 rake 任务

ruby-on-rails - 部分形式的动态路径?

Ruby 方法自省(introspection)

arrays - ruby 中 boolean 数组的最终逻辑值

ruby-on-rails - 无法使用 Clockwork 启动 clock.rb 模块 - 来自 activesupport 的未定义方法

ruby - 使用 Magento SOAP API v1 和 Savon Ruby Gem v2 创建类别时获取 'Error cannot find parameter'

ruby-on-rails - 嵌套模型验证 - 错误不显示

ruby-on-rails - 如何修复 Rake 任务中的 "uninitialized constant"

ruby - 如何在 Ruby 中编写内容更改 Web 代理服务器?

Ruby 错误无效的多字节字符 (US-ASCII)