Slice é um tipo de dado semelhante a um vetor, porém é tipado com base nos elementos
contidos, mais flexível e suporta mais métodos.
Em Go podemos declarar um slice utilizando as sintaxes abaixo. Um slice não iniciado
possui nil associado e possui tamanho 0.
Sintaxe
variavel := []tipo_dado{valores}
Onde
tipo_dado: tipo de dado dos elementos
Exemplo 1
package main
import "fmt"
func main() {
mslice := []string{"string0", "string1", "string2"}
fmt.Println(mslice)
}
Saída
[string0 string1 string2]
Um slice pode ser criado a partir de um array baseando-se na sintaxes abaixo:
Sintaxe
nome_slice := array[inicio:fim]
Onde
inicio: índice inicial.
fim: índice final.
Caso o fim não seja informado, o slice será criado baseado no último elemento do array. Caso o
início não seja informado o primeiro elemento será utilizado como índice base. Caso fim seja
maior que o tamanho do slice, o último elemento será levado em consideração.
Exemplo 2
package main
import "fmt"
func main() {
slice := []string{"string0", "string1", "string2"}
fmt.Println(slice[0:])
fmt.Println(slice[:1])
fmt.Println(slice[1:3]) //fim > tamanho do array
}
Saída
[string0 string1 string2]
[string0]
[string1 string2]
Além das formas acima, um slice também pode ser criado utilizando a função make
como na sintaxe abaixo:
Sintaxe
variavel := make([]tipo_slice, tamanho, capacidade)
Exemplo 3
package main
import "fmt"
func main() {
mslice := make([]string, 3, 5)
mslice[0] = "string0"
mslice[1] = "string0"
mslice[2] = "string0"
fmt.Println(mslice)
}
Saída
[string0 string0 string0]