Подтвердить что ты не робот

Что вызывает предупреждение Ruby о неоднозначном первом аргументе?

В Ruby 1.9.1, если вы делаете

$VERBOSE = true
puts /m/ , 42.to_s

или если я делаю

$VERBOSE = true
puts /m/ , "42"

Вы получите предупреждение

warning: ambiguous first argument; put parentheses or even spaces

Но я не понимаю, если я делаю

$VERBOSE = true
puts "m" , 42.to_s

или

$VERBOSE = true
puts(/m/, 42.to_s)

Итак, что конкретно вызывает это предупреждение? И какие еще пробелы я мог бы добавить в исходное выражение?

4b9b3361

Ответ 1

"Проблема" заключается в том, что / может означать деление или регулярное выражение. Сообщение является общим; синтаксический анализатор не обязательно означает, что пространства помогли бы конкретному конкретному выражению.