Begineer question


#1

I have had a horrible time googling this as I get too many hits back
that don’t apply.

I am new to Ruby, and trying to find a good ref as for when one would
use the form

puts #{a}

vs
puts a

Does anyone have any pointers?

Thanks
Jim

____________________________________________________________________________________Looking
for a deal? Find great prices on flights and hotels with Yahoo!
FareChase.
http://farechase.yahoo.com/


#2

On 5/18/07, jim o removed_email_address@domain.invalid wrote:

vs
puts a

Does anyone have any pointers?

You mean:
puts “#{a}”

Right? If so then it simply helps to do:

puts “foo=#{a} allows you to do more interesting things”

If you just want to print ‘a’ then there’s no reason to do “#{a}” it
would be like doing “%s” % [a]; you can do it, but it doesn’t make
sense.


#3

jim o wrote:

I am new to Ruby, and trying to find a good ref as for when one would use
the form

puts #{a}

vs
puts a

puts #{a} doesn’t do anything (except return nil), so I’m going to
assume you
meant to say puts “#{a}”. Since that does the same thing as puts a but
is more
to type, I’d always use the latter. The #{} syntax is only useful when
you
want to print out more than just the content of the variable. For
example:
puts “The value of x is #{x}”


#4

On Fri, May 18, 2007 at 11:24:19PM +0900, Sebastian H. wrote:

to type, I’d always use the latter. The #{} syntax is only useful when you
want to print out more than just the content of the variable. For example:
puts “The value of x is #{x}”

It really takes a more complex example to really make using that syntax
worthwhile. After all, these are equivalent:

puts “The value of foo is #{foo}”
puts "The falue of foo is " + foo

. . . except that the second example doesn’t require as much use of the
Shift key.

Yeah, though – your example does make the point clear. I guess I’m
just being a touch pedantic.


#5

On 5/18/07, jim o removed_email_address@domain.invalid wrote:

This will explain a little more about what Sebastian showed you.

http://www.rubycentral.com/book/tut_stdtypes.html#S2

Harry

A Look into Japanese Ruby List in English
http://www.kakueki.com/


#6

On 5/18/07, Felipe C. removed_email_address@domain.invalid wrote:

puts “foo=#{a} allows you to do more interesting things”

If you just want to print ‘a’ then there’s no reason to do “#{a}” it
would be like doing “%s” % [a]; you can do it, but it doesn’t make
sense.
Well maybe it might be useful to explain things a little more in
detail, because there is #to_s called all over the place
As a matter of fact “#{a}” is the same as “” << a.to_s
and IO#puts, IO#write and IO#print convert their arguments by
calling#to_s on them too.

It is therefore only in the context of e.g. puts that
“#{a}” is the same as a.

HTH
Robert


#7

Chad P. wrote:

After all, these are equivalent:

puts “The value of foo is #{foo}”
puts "The falue of foo is " + foo

Only if foo is a string. #{} automatically to_ses non-strings, while +
doesn’t


#8

On 5/20/07, Lloyd L. removed_email_address@domain.invalid wrote:

Perhaps a translation would make things clearer:

printf(“We are going to %s.”, [toUpper(destination)]);

puts “We are going to #{destination.upcase}.”
Maybe print is better a translation, but you made your point nonetheless
:wink:

Robert


#9

Perhaps a translation would make things clearer:

printf(“We are going to %s.”, [toUpper(destination)]);

puts “We are going to #{destination.upcase}.”