Iteração
Para fazer coisas repetidamente em Go, você precisará do
for
. Go não possui nenhuma palavra chave do tipo while
, do
ou until
. Você pode usar apenas for
, o que é uma coisa boa!Vamos escrever um teste para uma função que repete um caractere 5 vezes.
Não há nenhuma novidade até aqui, então tente escrever você mesmo para praticar.
package iteracao
import "testing"
func TestRepetir(t *testing.T) {
repeticoes := Repetir("a")
esperado := "aaaaa"
if repeticoes != esperado {
t.Errorf("esperado '%s' mas obteve '%s'", esperado, repeticoes)
}
}
./repetir_test.go:6:14: undefined: Repetir
Mantenha a disciplina! Você não precisa saber nada de diferente agora para fazer o teste falhar apropriadamente.
Tudo o que foi feito até agora é o suficiente para compilar, para que você possa verificar se escreveu o teste corretamente.
package iteracao
func Repetir(caractere string) string {
return ""
}
Não é legal saber que você já conhece o bastante em Go para escrever testes para problemas simples? Isso significa que agora você pode mexer no código de produção o quanto quiser sabendo que ele se comportará da maneira que você desejar.
repetir_test.go:10: esperado 'aaaaa' mas obteve ''
A sintaxe do
for
é muito fácil de lembrar e segue a maioria das linguagens baseadas em C
:func Repetir(caractere string) string {
var repeticoes string
for i := 0; i < 5; i++ {
repeticoes = repeticoes + caractere
}
return repeticoes
}
Ao contrário de outras linguagens como
C
, Java
ou Javascript
, não há parênteses ao redor dos três componentes do for
. No entanto, as chaves { }
são obrigatórias.Execute o teste e ele deverá passar.
Agora é hora de refatorarmos e apresentarmos outro operador de atribuição: o
+=
.const quantidadeRepeticoes = 5