def foo(*args)
puts args.size
args.each { |a| puts a.class }
end
foo(['a','b'])
=> 1
=> Array
foo(*['a','b'])
=> 2
=> String
=> String
~paul
On Feb 26, 2011, at 10:10 AM, Bradly wrote:
> In a method declaration, *a means make an array of all the values passed to
> the function. So when the method to_json is called with to_json(1,2,3 true),
> a would equal [1,2,3,true]
>
> Using *a when calling a method, the variable is "exploded" into separate
> arguments for the method call. For example:
>
> a = [1,2,3]
> to_json(*a) would be the same as calling to_json(1,2,3)
>
> Hope that helps,
> Bradly
>
>
>
> On Sat, Feb 26, 2011 at 10:04 AM, misham <[email protected]> wrote:
> I'm looking at the code at http://flori.github.com/json/ and the
> example given is:
>
> class Range
> def to_json(*a)
> {
> 'json_class' => self.class.name,
> 'data' => [ first, last, exclude_end? ]
> }.to_json(*a)
> end
>
> def self.json_create(o)
> new(*o['data'])
> end
> end
>
>
> What does *a mean in the to_json function parameter list?
>
> --
> SD Ruby mailing list
> [email protected]
> http://groups.google.com/group/sdruby
>
>
> --
> SD Ruby mailing list
> [email protected]
> http://groups.google.com/group/sdruby
--
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby