Por que preciso de um ponto e vírgula aqui?
-
19-09-2019 - |
Pergunta
Aqui está um programa Go teste:
package main
import fmt "fmt"
func main () {
ex := "moo cow\n";
fmt.Print (ex)
}
Com o ponto e vírgula, ele compila. No entanto, se o ponto e vírgula é removido, ele não:
string.go:5: syntax error near fmt
Todas as idéias?
Update (março de 2012) :. Novas Go lançamentos são capazes de compilar as duas formas (com e sem o ponto e vírgula)
Solução
A partir The Go Programação Language Specification :
Elementos de uma lista de declarações são separadas por um ponto e vírgula, que pode ser omitido somente se o anterior declaração:
- extremidades com o parêntese de fechamento ")" de uma lista de declarações; ou
- termina com uma chave de fechamento "}" que não faz parte de uma expressão.
Outras dicas
Bem, a resposta é tecnicamente aqui: http://golang.org/doc/effective_go. html # semicolons , mas não é muito clara. Parece que você pode deixar vírgula fora do final de declarações, mas não expressões. Eu acho que (eu não estou certo aqui), que expressões são qualquer coisa com um "=": (embora + = parece estar bem no tutorial) (ou "=") neles