Simple Question

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

···

On Mar 26, 10:17 am, pete <peterbattag...@gmail.com> wrote:

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

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 :slight_smile:

David

···

On Thu, 27 Mar 2008, pete wrote:

--
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!

Is it possible to ...

yes but you don't need a lot of that extra syntax

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

thisarr = test(1.2,"three")
=> [1.2, "three"]

pete <peterbattaglia@gmail.com> wrote: 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

···

On Mar 26, 2008, at 10:19 AM, pete wrote:

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

pete wrote:

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

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

Gareth Adams wrote:

···

pete wrote:

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