Strangeness with string concatenation and function return va


#1

I get an error when running code snippet A, but if I change it to B,
there’s
no error. I’m not familiar enough with Ruby to know why this is. Could
someone explain this?

----- A -----
def ReturnString ( )
return “abc”
end

File.open ( “junk.txt” , “w” ) do | f |
f.write ( ReturnString ( ) + “\n” )
end

----- B -----
def ReturnString ( )
return “abc”
end

File.open ( “junk.txt” , “w” ) do | f |
s = ReturnString ( )
f.write ( s + “\n” )
end

If it makes any difference, I’m running Ruby under Windows.

Mike S.


#2

On 5/2/07, Jesse M. removed_email_address@domain.invalid wrote:

‘abc’
http://www.jessemerriman.com/

Jesse explained the problem.
I ran your code and there were no errors in one version but there were
warnings about the spaces before parentheses. It is a good idea to
heed warnings and try to make them go away.

Harry


#3

On Tuesday 01 May 2007 22:27, Mike S. wrote:

f.write ( ReturnString ( ) + "\n" )

end

You can’t have that space between ReturnString and the parenthesis (you
sure
like lots of spaces, eh?). Here’s one way of doing it that should work:

def return_string
‘abc’
end

File.open(‘junk.txt’, ‘w’) do |f|
f.puts return_string
end