Esses dias olhando código no GitHub vi um trecho como esse: def example(*b)
O que esse código faz não vem ao caso, mas olhei o *b
e pensei, oque que é esse * antes da variável me veio na hora ponteiro, mas ruby não possui ponteiros, então oque *b
faz?
pesquisei sobre e resumindo é a sintaxe para splat operator em ruby, ex:
1 2 3 4 5 6 7 8 |
|
na ultima linha o *arr
faz com que cada item do array seja passado como parâmetro para o método example
, você pode usar dessa forma também.
1 2 3 4 5 6 |
|
Nessa segunda abordagem você de ter cuidado para que a quantidade de elementos no array seja igual a quantidade de parâmetros requeridos pelo método.
Outra forma válida é o próximo exemplo:
1 2 3 4 5 6 7 |
|
Nesse caso o primeiro valor da variavel arr
é atribuido ao primeiro parâmetro e os demais ao parâmetro v2.