Adicionar Elemento ao Slice
Lição 3 de 21 do curso Slices e Maps em GoLang da Coddy.
Nas últimas lições, discutimos que a diferença entre um slice e um array reside no seu tamanho, o que se torna evidente ao verificar o comprimento.
Por exemplo, se definirmos um slice assim:
nums := []int{23, 5, 6}Nosso slice tem três elementos, e verificar o comprimento usando a função <strong>len()</strong> nos dá 3:
nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3Se adicionarmos elementos ao slice e verificarmos o tamanho, obteremos o novo tamanho:
nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5Pelo contrário, um array tem um tamanho fixo. Por exemplo:
nums := [4]int{23}
fmt.Println(len(nums)) // 4Mesmo que ele tenha menos de 4 elementos, o comprimento permanece fixo.
A adição de elementos a um slice é feita usando <strong>append</strong>:
books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)A execução disso resulta em:
[Python Rust Golang]Em Golang, os slices vêm com funções integradas, e <strong>append()</strong> é uma delas, permitindo-nos adicionar novos elementos a um slice existente.
Observe que, devido ao tamanho dinâmico dos slices, não podemos usar o índice para adicionar elementos (
<strong>books[2] = "Golang"</strong>não funcionará).
Desafio
FácilEscreva um programa que receba 3 entradas do usuário e as adicione ao slice chamado <strong>coddy</strong>, conforme definido no código fornecido. Execute os seguintes passos:
- Imprima o comprimento (length) do slice antes de adicionar os elementos.
- Adicione os elementos ao slice.
- Imprima o slice e o comprimento atualizado após adicionar os elementos (em linhas diferentes).
Experimente você mesmo
package main
import "fmt"
func main() {
// Obtenha a entrada do usuário Não mude isso!
var first, second, third string
fmt.Scan(&first)
fmt.Scan(&second)
fmt.Scan(&third)
// Defina o Slice
coddy := []string {"SQL","Rust","C#","Golang"}
// Imprima o comprimento
// Adicione o elemento ao Slice
// Imprima o slice e o comprimento atualizado
}Todas as lições de Slices e Maps em GoLang
1Introdução
Introdução2Slices
Slices vs ArraysAdicionar Elemento ao SliceSlicingFormas de SlicingReslicingCapacidade do SliceCapacidade MáximaIterar sobre um SliceDesafio de Recapitulação nº 1