0
respostas

[Bug] Cuidado na Identação do else.

Boa tarde!

Não é duvida, apenas um erro que pode acontecer na compilação que não acontece em outras linguagens.

Se você não deixar o else na mesma linha do fechamento da ultima chave, o compilador vai reclamar algo parecido com isso:

./hello.go:28:5: syntax error: unexpected else, expected }

A estrutura correta obrigatória é:

if condicao {
// código
} else { // O else DEVE estar aqui
// código
}

if condicao {
// código
}
else { // ERRO: syntax error: unexpected else, expecting }
// código
}

Se você fizer isso, vai dar erro de compilação:

Muito louco, mas tem uma explicação.Não é apenas uma convenção de estilo, é uma regra sintática do compilador de Go causada pela inserção automática de ponto e vírgula.

O compilador Go adiciona um ; ao final de cada linha que ele considera o fim de uma instrução.
Se você fecha a chave } em uma linha e coloca o else na próxima, o compilador insere um ; logo após a chave de fechamento.

As vezes uma facilidade pode ocasionar problemas inicialmente, mas depois de um tempo e de saber o motivo tudo começa a fazer mais sentido.

Até.