A diferença entre array e slice

Quando comecei aprender Go, eu achava que slice e array eram a mesma coisa. Depois de algum tempo que fui descobrir e entender a diferença entre eles.

Nesse post vou falar sobre a diferença entre eles e refatorar o código do vídeo sobre bubble sort que publicamos lá no canal, para que ele funcione com arrays ao invés de slice.

Para começar, vamos entender o que são arrays.

Um array é um tipo de dado composto, de tamanho fixo com zero ou mais elementos de um tipo específico. Por ter tamanho fixo, raramente vemos o uso de arrays em programas Go.

Existem três formas básicas para se iniciar um array.

Leia mais »

As várias formas de fazer looping em Go

A maioria das linguagens que já trabalhei tem vários comandos para fazer looping, como por exemplo for, foreach, while, do..while e goto.

Já em Go, nós só temos o comando for, porém ele tem várias assinaturas, o que no final faz com que ele possa ter o comportamento equivalente a um for, foreach e while de outras linguagens.

Vamos começar pela forma mais básica, que é a mesma assinatura que outras linguagens utilizam.

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

nomes := []string{Tiago, Lucas, Pedro, Luana, Dani}
for i := 0; i < len(nomes); i++ {
    fmt.Println(nomes[i])
}
Leia mais »

Qual a melhor forma para aumentar um array?

Nesse post vamos ver 3 formas diferentes de aumentar o tamanho de um array em Go.

Para ficar um pouco mais interessante, vamos trabalhara com 2 arrays. O primeiro será um array de string e o segundo um array de Pessoa.

type Pessoa struct {
    Nome string
    Idade int32
}

Primeira forma é também a mais simples. Particularmente, eu tento evitar ao máximo utilizar esse método para aumentar meus arrays, pois embora ela seja a mais simples, é também a mais custosa.

Leia mais »