Simple Question

P

pete

Hi-

This should be an easy one to answer...

Is it possible to return an array from a function?

Example (although a very bad one):

def test(val1,val2)
myarr = Array.new
myarr = [val1,val2]
return myarr
end

begin
thisarr = test(val1,val2)
end
 
C

Chris Shea

Hi-

This should be an easy one to answer...

Is it possible to return an array from a function?

Example (although a very bad one):

def test(val1,val2)
myarr = Array.new
myarr = [val1,val2]
return myarr
end

begin
thisarr = test(val1,val2)
end

You have the code. Why not run it? It will answer your question.

Chris
 
D

David A. Black

Hi --

Hi-

This should be an easy one to answer...

Is it possible to return an array from a function?

Yes. You can return any object.

irb is really good for answering questions like this:

irb(main):001:0> def return_array
irb(main):002:1> [1,2,3]
irb(main):003:1> end
=> nil
irb(main):004:0> return_array
=> [1, 2, 3]
def test(val1,val2)
myarr = Array.new
myarr = [val1,val2]

You're re-assigning to myarr, which means that the first value will be
discarded (unless it has another reference somewhere else (which it
doesn't in this case).
return myarr
end

You could rewrite the above as:

def test(val1, val2)
[val1, val2]
end

Just return what you want to return -- no need to dance around it :)


David

--
Rails training from David A. Black and Ruby Power and Light:
ADVANCING WITH RAILS April 14-17 New York City
INTRO TO RAILS June 9-12 Berlin
ADVANCING WITH RAILS June 16-19 Berlin
See http://www.rubypal.com for details and updates!
 
D

Dan Fitzpatrick

Hi-

This should be an easy one to answer...

Is it possible to return an array from a function?

Example (although a very bad one):

def test(val1,val2)
myarr = Array.new
myarr = [val1,val2]
return myarr
end

begin
thisarr = test(val1,val2)
end

Yes. Even shorter:

def test(val1,val2)
[val1,val2]
end
 
G

Gareth Adams

pete said:
Hi-

This should be an easy one to answer...

Since you've written all that code, it would be even easier (and get you
a faster response) just to run it, surely?

Yes, you can return an Array (or any object) from a method.

Gareth
 
R

Ron Fox

More precisely, ruby variables are references to objects, not the object
itself. You can return a reference to any type of object, including an
Array.

RF
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,141
Latest member
BlissKeto
Top