Hi,
SyntaxError: (irb):39: syntax error, unexpected ‘,’, expecting ‘)’
“Hello, %s %s” %(“Matz!”,“again”)
            ^
    from /usr/bin/irb:12:in `’
So what’s the correct syntax for this case?
Thanks.
On Mon, Dec 14, 2009 at 4:59 AM, Bertram S. [email protected] wrote:
string in front of it. There is also a shortcut
%(“Matz!”,“again”)
for
%Q(“Matz!”,“again”)
which would be a string.
Actually, I’m not sure how that % before the ( is being seen by the
parser.
By itself
%(“Matz!”,“again”)
=> “"Matz!","again"”
For either Ruby 1.8.6 or 1.9.
%( should interpret everything up to the the matching ) as part of a
string including the "'s and the , I’m not sure why it doesn’t do the
same thing as:
“Hello, %s %s” % “"Matz!","again"”
ArgumentError: too few arguments
from (irb):3:in `%’
from (irb):3
Since the format string needs two substitutions and we are only giving
it one.
Perhaps a subtle Ruby parsing/lexing bug.
What you do is applying the mod(%) operator to a string:
No, this is sending the message % to the string. String#% is NOT mod,
the documentation (informally calls it format) and directs you to
Kernel#sprintf for further explanation.
Other that sharing the name :‘&’ with the methods in the various
Numeric subclasses, there’s no meaning of mod.