2016-01-05 3 views
4
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

'str &. [] (/ Hello /)' это должен быть правильный путь. –

ответ

7

Как оператор безопасной навигации (&.) используется на синтаксический сахар для [] метода?

Не может. Мац не хочет этого.

Эта функция была запрошена и отвергнута уже дважды:

Matz says:

Я не собираюсь, чтобы добавить безопасную навигацию для Ареф и Асет , Возможно, вы можете использовать a.?[](x) (вызов метода оператора).

3

Ответ короткий - вы не можете. Becase «имя метода синтаксически требуется» от Ruby 2.3. НОВОСТИ

Смежные вопросы