Зачем мне точка с запятой здесь? - PullRequest
7 голосов
/ 12 ноября 2009

Вот тестовая программа Go:

package main
import fmt "fmt"
func main () {
    ex := "moo cow\n";
    fmt.Print (ex)
}

С точкой с запятой он компилируется. Однако, если точка с запятой удалена, это не так:

string.go:5: syntax error near fmt

Есть идеи?


Обновление (март 2012 г.) : Новые версии Go могут компилировать обе формы (с точкой с запятой и без нее).

Ответы [ 2 ]

11 голосов
/ 12 ноября 2009

С Спецификация языка программирования Go :

Элементы списка выписок разделенные точкой с запятой, которые могут быть опущено, только если предыдущий заявление:

  • оканчивается закрывающей скобкой ")" списка объявлений; или
  • заканчивается закрывающей скобкой "}", которая не является частью выражения.
1 голос
/ 12 ноября 2009

Ну, технически ответ здесь: http://golang.org/doc/effective_go.html#semicolons, но это не очень понятно. Похоже, вы можете оставить точки с запятой в конце операторов, но не в выражениях. Я думаю (я не уверен, что здесь), что выражения - это что-то с "=" (или ": =") в них (хотя + =, кажется, хорошо в учебнике?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...