Menu
Coddy logo textTech

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)) // 3

Se adicionarmos elementos ao slice e verificarmos o tamanho, obteremos o novo tamanho:

nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5

Pelo contrário, um array tem um tamanho fixo. Por exemplo:

nums := [4]int{23}
fmt.Println(len(nums)) // 4

Mesmo 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á).

challenge icon

Desafio

Fácil

Escreva 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:

  1. Imprima o comprimento (length) do slice antes de adicionar os elementos.
  2. Adicione os elementos ao slice.
  3. 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