Hi there!
I was experimenting with printf thus:
puts printf("%s is %d years old.", “booboo”, 12)
and got this result:
booboo is 12 years old.nil
Where does that nil originate and how do I get rid of it?
Hi there!
I was experimenting with printf thus:
puts printf("%s is %d years old.", “booboo”, 12)
and got this result:
booboo is 12 years old.nil
Where does that nil originate and how do I get rid of it?
On 27 Jun 2008, at 16:52, Lloyd L. wrote:
I was experimenting with printf thus:
puts printf(“%s is %d years old.”, “booboo”, 12)
and got this result:
booboo is 12 years old.nil
Where does that nil originate and how do I get rid of it?
Your code contains two expressions:
puts (printf(“%s is %d years old.”, “booboo”, 12))
so the printf is outputting the string “Booboo is 12 years old.” and
returning the value nil,
then puts is outputting that nil
Ellie
raise ArgumentError unless @reality.responds_to? :reason
perhaps you’re thinking of sprintf?
printf returns nil, but displays the string to the screen, so what’s
happening here is
puts(printf(“blah.”))
printf prints out “blah.” without a return, then puts prints out the
return value of printf, which is nil.
so you get
blah.nil
To do what you want, use sprintf, which returns for the formatted string
–Kyle
Perfect! Thanks!
It turns out that I mixed the
printf("%s is %d years old.", “booboo”, 12)
with
puts “%s is %d years old.” % [“booboo”, 12]
doh!
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs