In my use case, I wanted to pass an array of fields into the
.pluck operator for a query, but the pluck operator doesn't take in arrays. Obviously, the solution here is to destructure the array. Were it JS I probably would have just written
.pluck(...pluck_fields) and moved on with my life. But funny enough, I have never had to destructure an array within function arguments. So I asked my supervisor and they told me to check the splat operator.
According to this article by Starr Horne, **They (splat operators) let you pass an array into a function expecting multiple arguments. The first item in the array becomes the first argument, the second item becomes the second argument and so on.*
Splat operator is more commonly used in function definition when the number of arguments is not known before hand, for instance:
def fun(*args) p args end
But in my use case, I want to focus on the first definition I mentioned, they can be used to pass an array into a function expecting multiple arguments. This directly solves my problem, where now i can pass an array of fields I want plucked to the pluck function,
There is a lot more to explain about the splat operator and how it can also destructure Hashes as well, but that is beyond the scope of this post for now.