One of the things that I love about Ruby is the depth of its features. You may use an operator, but do a little digging and you’ll find that you’ve only been scratching the surface of what it’s capable of. The humble splat operator (* and **) is a great example.

You’ve probably used splats for “catch-all” arguments. And that’s all that most people use them for.

This is useful, but you can use splats for a lot more. Let’s dive in!

Source: Using splats to build up and tear apart arrays in Ruby