The Splat Operator
Suppose you want a method to have arguments and you want to accept a varying number of them. Ruby has a special syntax to account for this case. It is called the splat operator and is denoted as *
. Actually, this is called the single splat operator. Since Ruby 2.0, there is also a double splat operator, **
. Let's take a look at both of these.
The Single Splat (*) Operator
The single splat operator, *
, is actually a way to work with arrays. Remember from earlier that Ruby really implements arguments as arrays behind the scenes? The splat operator allows us to build arrays together into a single variable or to splat them out into multiple variables. One of the main uses of the splat operator is to use it as a catch-all method argument. In other words, you can pass multiple arguments to a method call, and if the method signature defines an argument with the splat operator, it will combine all those arguments into the one variable.
Consider the following...