Strangeness with string concatenation and function return va

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

----- A -----
def ReturnString ( )
return “abc”
end ( “junk.txt” , “w” ) do | f |
f.write ( ReturnString ( ) + “\n” )

----- B -----
def ReturnString ( )
return “abc”
end ( “junk.txt” , “w” ) do | f |
s = ReturnString ( )
f.write ( s + “\n” )

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

Mike S.

On 5/2/07, Jesse M. [email protected] wrote:


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.


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

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


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

def return_string
end‘junk.txt’, ‘w’) do |f|
f.puts return_string

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs