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
安全导航操作符(&.
)如何用于[]
方法的语法糖?
答案 0 :(得分:7)
安全导航操作符(
&.
)如何用于[]
方法的语法糖?
它不能。马茨并不想要它。
此功能已被请求和拒绝两次:
[]
and []=
with syntax sugar 我不会为aref和aset添加安全导航。 也许你可以使用
a.?[](x)
(运算符的方法调用)。
答案 1 :(得分:3)
答案很短 - 你不能。从Ruby 2.3 NEWS
获取“语法上需要的方法名称”