What triggers the Ruby warning about ambiguous first argument?
In Ruby 1.9.1, if you do
$VERBOSE = true
puts /m/ , 42.to_s
or i开发者_StackOverflowf I do
$VERBOSE = true
puts /m/ , "42"
You get the warning
warning: ambiguous first argument; put parentheses or even spaces
But I don't get it if I do
$VERBOSE = true
puts "m" , 42.to_s
or
$VERBOSE = true
puts(/m/, 42.to_s)
So what specifically triggers this warning? And what more spaces could I have added to the original expression?
The "problem" is that /
could signify division or a regular expression. The message is generic; the parser doesn't necessarily mean that spaces would have helped a given specific expression.
精彩评论