Go: Lendo slices usando range

Filipe Munhoz
2 min readAug 11, 2020

--

Slices são estrutura de dados criadas em cima do array que tem a capacidade de armazenar uma lista numerada (indexada) de um mesmo tipo. Diferente dos arrays, slices possuem tamanho flexível. Nesta sessão iremos focar em como realizar uma iteração nos elementos do slice utilizando o range.

Declarando um Slice

Primeiro iremos declarar um novo Slice contendo quatro elementos.

func main() {
styles := []string{“Rock”, “Country”, “Blues”, “Jazz”}
}

Lendo um Slice

Existem mais de uma maneira para ler um Slice, iremos ver três métodos.

Método 1

Fazendo a leitura de um Slice utilizando apenas a primeira variável (index) retornada do for, chamada de "i".

package mainimport (
“fmt”
)
func main() {
styles := []string{“Rock”, “Country”, “Blues”, “Jazz”}
printStyles(styles)
}
func printStyles(styles []string) {
for i := range styles {
fmt.Println(“Style:”, styles[i])
}
}

Neste exemplo, "for" retornou uma variável chamada de "i" que representa a posição (index) do Slice "styles". Nos utilizaremos o index para recuperar o valor correspondente dentro do Slice.

Método 2

Lendo um Slice utilizando as duas variáveis retornadas do for.

package mainimport (
“fmt”
)
func main() {
styles := []string{“Rock”, “Country”, “Blues”, “Jazz”}
printStyles(styles)
}
func printStyles(styles []string) {
for i, style := range styles {
fmt.Printf(“Style: %v at index %v\n”, style, i)
}
}

Este método retorna duas variáveis: "i" que é o index da posição na lista e os elementos em "style".

Nós podemos ler o elemento diretamente utilizando fmt.Printf passando %v (valor) e a variável style.

Nos precisamos ler as duas variáveis caso contrário o compilador irá reportar que a variável não está sendo utilizada.

Método 3

Lendo um Slice ignorando a variável de index "i".

package mainimport (
“fmt”
)
func main() {
styles := []string{“Rock”, “Country”, “Blues”, “Jazz”}
printStyles(styles)
}
func printStyles(styles []string) {
for _, style := range styles {
fmt.Printf(“Style: %v\n”, style)
}
}

Para previnir que o compilador reclame que variáveis nao estão sendo utilizadas, na sintaxe for nos mudaremos a primeira variável "i" para um underscore "_", assim será ignorado este valor e o compilador irá passar.

Código fonte do exemplo

O código fonte deste exemplo por ser encontrado no repositório GIT logo abaixo:

Obrigado pela leitura.

--

--