Page 1 of 1

(RUBY) Array as argument list

Posted: Mon Jun 22, 2015 4:20 pm
by tulamide
You may already know that you can use the splat operator followed by an array to define a list of arguments. That's helpful if you have a method that works with any number of arguments:

Code: Select all

def sum *args
	sum = 0
	args.each do |n|
		sum += n
	end
	return sum
end

sum 1, 2, 3, 4, 5, 6
#returns 21
But, it also works the other way round. Imagine, you have an array structured like this

Code: Select all

myArray = [x, y, z, x, y, z, x, y, z]
and a method like this

Code: Select all

def translate x, y, z
	n = x * z + y * z
	#do cool stuff
end
You can easily use the array without intermediate steps like so

Code: Select all

translate *myArray[0..2]
#takes the first 3 elements of myArray and passes them as arguments
Happy Programming :D