Cópia de Golang

Cópia de Golang
O método de cópia em Go permite copiar elementos de uma fatia especificada para outra fatia. A função retornará o número de elementos copiados.

A sintaxe da função é como mostrado:

func cópia (dst, src [] tipo)

A função leva o destino e a fatia de origem como o argumento. Como mencionado, retornou o número de elementos copiados.

O número de elementos é determinado pelo comprimento mínimo da fatia de origem e destino. Isso é independentemente da sobreposição de argumentos.

Copie a fatia em outra fatia

O exemplo abaixo ilustra como copiar uma fatia em outra fatia.

Pacote principal
importar "fmt"
funcmain ()
slice_1: = [] int 1, 2, 3, 4, 5
slice_2: = make ([] int, 3)
fmt.Println ("Antes (slice_1):", slice_1)
fmt.Println ("Antes (slice_2):", slice_2)
// cópia de
copied_elements: = copy (slice_2, slice_1)
fmt.Println ("depois (slice_1):", slice_1)
fmt.Println ("depois (slice_2):", slice_2)
fmt.Println ("Elementos copiados:", copied_elements)

O código acima deve retornar uma saída como mostrado:

Antes (Slice_1): [1 2 3 4 5]
Antes (Slice_2): [0 0 0]
Depois (Slice_1): [1 2 3 4 5]
Depois (Slice_2): [1 2 3]
Elementos copiados: 3

Observe que o número de elementos copiados é determinado pelo comprimento mínimo da fatia de origem ou destino. Em nosso exemplo, o comprimento mínimo é 3, conforme determinado por Slice_2.

Copie a string em fatia de byte.

Sabemos em Go, uma corda é basicamente uma fatia de bytes. Portanto, deve ser possível copiar uma string em uma fatia de byte.

Considere o exemplo abaixo:

PackageMain
importar "fmt"
funcmain ()
STR: = "Olá"
byte_slice: = make ([] byte, 10)
copied_elements: = copy (byte_slice, str)
fmt.Println ("Elementos copiados:", copied_elements)
fmt.Println ("str:", str)
fmt.Println ("Byte Slice:", byte_slice)

O acima deve copiar a string para a fatia de byte. A saída resultante é como:

Elementos copiados: 5
STR: Olá
Fatia de byte: [104 101 108 108 111 0 0 0 0 0]

Conclusão

Neste artigo, aprendemos a usar a função de cópia. Isso nos permite copiar elementos de uma fatia de fonte para um destino especificado. Também podemos copiar uma string para uma fatia de byte, como mostrado nos exemplos.

Obrigado pela leitura!