Ruby oferece diversas maneiras de combinar arrays, cada uma com suas próprias características. Este guia explora os métodos mais comuns e eficientes, fornecendo exemplos para ilustrar seu comportamento.
Sumário
- Mesclando Arrays com
concat
- Mesclando Arrays com o Operador
+
- Mesclando Arrays com
push
e o Operador Splat - Mesclando Arrays com
append
- Mesclando Arrays com
union
- Mesclando Arrays com o Operador
|
- Conclusão
1. Mesclando Arrays com concat
O método concat
modifica o array original adicionando os elementos de outro array ao seu final. É uma operação in-place, alterando diretamente o array em que é chamado.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.concat(array2)
puts array1 # Saída: [1, 2, 3, 4, 5, 6]
puts array2 # Saída: [4, 5, 6] (array2 permanece inalterado)
2. Mesclando Arrays com o Operador +
O operador +
cria um array novo contendo todos os elementos de ambos os arrays. Os arrays originais permanecem inalterados.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
merged_array = array1 + array2
puts merged_array # Saída: [1, 2, 3, 4, 5, 6]
puts array1 # Saída: [1, 2, 3] (array1 permanece inalterado)
puts array2 # Saída: [4, 5, 6] (array2 permanece inalterado)
3. Mesclando Arrays com push
e o Operador Splat
O método push
adiciona elementos ao final de um array. O operador splat (*
) desempacota outro array, permitindo que você adicione todos os seus elementos de uma vez. Assim como concat
, isso modifica o array original.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.push(*array2)
puts array1 # Saída: [1, 2, 3, 4, 5, 6]
puts array2 # Saída: [4, 5, 6] (array2 permanece inalterado)
4. Mesclando Arrays com append
O método append
é sinônimo de push
; eles funcionam de forma idêntica.
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.append(*array2)
puts array1 # Saída: [1, 2, 3, 4, 5, 6]
puts array2 # Saída: [4, 5, 6] (array2 permanece inalterado)
5. Mesclando Arrays com union
O método union
(ou seu alias, o operador |
) retorna um array novo contendo apenas os elementos únicos de ambos os arrays de entrada. Elementos duplicados são eliminados.
array1 = [1, 2, 3, 3]
array2 = [3, 4, 5]
merged_array = array1.union(array2)
puts merged_array # Saída: [1, 2, 3, 4, 5]
puts array1 # Saída: [1, 2, 3, 3] (array1 permanece inalterado)
puts array2 # Saída: [3, 4, 5] (array2 permanece inalterado)
6. Mesclando Arrays com o Operador |
Esta é uma forma abreviada do método union
, produzindo o mesmo resultado.
array1 = [1, 2, 3, 3]
array2 = [3, 4, 5]
merged_array = array1 | array2
puts merged_array # Saída: [1, 2, 3, 4, 5]
puts array1 # Saída: [1, 2, 3, 3] (array1 permanece inalterado)
puts array2 # Saída: [3, 4, 5] (array2 permanece inalterado)
7. Conclusão
Ruby fornece diversos métodos para mesclar arrays, permitindo que você selecione a abordagem ideal com base em suas necessidades específicas. Considere se a modificação in-place ou um novo array é necessário e se os elementos duplicados devem ser preservados. Para criar novos arrays, o operador +
e o método union
geralmente oferecem melhor legibilidade. concat
e push
são eficientes para modificar arrays diretamente. Entender essas nuances garante a escrita de código Ruby claro e eficiente.