【问题标题】:Syntactic sugar for Safe Navigation operator(&.)安全导航运算符 (&.) 的语法糖
【发布时间】:2016-04-08 20:31:46
【问题描述】:
str = "Hello World!"
str.[] /Hello/    # => "Hello"
str[/Hello/]      # => "Hello", syntactic suger version

str = nil
str&.[] /Hello/   # => nil
str&.[/Hello/]    # => SyntaxError: unexpected '[', expecting '('
str[/Hello/]      # => NoMethodError: undefined method `[]' for nil:NilClass

如何将安全导航运算符 (&.) 用于 []method 的语法糖?

【问题讨论】:

  • str&.[](/Hello/) 这应该是正确的方法。

标签: ruby syntactic-sugar ruby-2.3


【解决方案1】:

如何将安全导航运算符 (&.) 用于 []method 的语法糖?

不能。 Matz 不希望这样。

此功能已被请求并被拒绝两次:

Matz says:

我不会为 aref 和 aset 添加安全导航。 也许你可以使用a.?[](x)(运营商的方法调用)。

【讨论】:

    【解决方案2】:

    答案很短——你不能。因为 Ruby 2.3 新闻中的“方法名称在语法上是必需的”

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 2012-03-13
      • 2017-05-27
      • 2017-12-22
      • 2011-05-05
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多