2016-07-22 3 views
1

Команда gofmt не форматирует фигурные скобки ({}).Команда GoLang gofmt

Код:

package main 

import "fmt" 

func main() 
{ 
    fmt.Printf("Hello, world\n") 
} 

Выход gofmt hello.go

hello.go: 6: 1: ожидаемое заявление, найдено '{' статус выхода 2

Если я поставил пространствах, где он правильно ее форматирует. Разве gofmt не форматирует фигурные скобки?

+2

Имейте в виду, что в Go следует использовать фигурные скобки inline с объявлением функции! –

ответ

6

Вы должны поставить фигурную скобку в той же строке объявления функции в противном случае ваш код не будет компилироваться из-за этой ошибки синтаксиса

Почему нет брекеты, но нет запятой? И почему я не могу положить открытую фигурку на следующую строку?

Go использует скобки для группировки операторов, синтаксис, знакомый программистам , которые работали с любым языком в семье C. Точка с запятой, однако, предназначена для парсеров, а не для людей, и мы хотели, чтобы устранили их как можно больше. Для достижения этой цели Go заимствует трюк из BCPL: точки с запятой, которые разделяют операторы, находятся в официальной грамматике , но вводятся автоматически, без lookahead, на lexer в конце любой строки, которая может быть завершением оператора , Это работает очень хорошо на практике, но имеет эффект, что он создает стиль фигур . Например, открывающая фигурная скобка функции не может отображаться на отдельной строке.

https://golang.org/doc/faq#semicolons

3

ваш код ошибки синтаксиса: поставить открытую фигурную скобку в той же строке с объявлением функции.
и фрагмент программы должен быть синтаксически правильным для использования gofmt:

см: https://golang.org/cmd/gofmt/ он говорит:

Когда gofmt считывает данные из стандартного ввода, он принимает либо полную программу Go или ее фрагмент программы. Фрагмент программы должен быть синтаксически действительным списком объявлений, списком операторов или выражением. При форматировании такого фрагмента gofmt сохраняет ведущий отступ , а также передние и конечные пробелы, так что отдельные разделы a Go могут быть отформатированы путем прокладки их через gofmt.

0

поставить открытую фигурную скобку в той же строке с объявлением функции может быть, вы должны добавить gofmt в редакторе, он может избежать проблем формата кода

Смежные вопросы