Indentation in Go: tabs or spaces?
Solution 1:
The official recommendation is formatting your code with
go fmt
or using the gofmt command directly
gofmt -w .
You can read more about it here on the golang.org blog, or from the Effective go document:
Indentation
We use tabs for indentation and gofmt emits them by default. Use spaces only if you must.
Solution 2:
EDIT 2: he original answer at the bottom is now incorrect. The correct section of the linked source file (current 30/12/2019) is:
Gofmt formats Go programs. It uses tabs for indentation and blanks for alignment. Alignment assumes that an editor is using a fixed-width font.
Thanks to TehSphinX for pointing this out!
ALL INFO BELOW THIS LINE IS NOW INCORRECT
EDIT: The original answer at the bottom is now incorrect. The correct section of the linked source file (current 25/07/2014) is:
Gofmt formats Go programs.
It uses tabs (width = 8) for indentation and blanks for alignment.
Original answer (deprecated):
Formatting control flags:
-comments=true
Print comments; if false, all comments are elided from the output.
-tabs=true
Indent with tabs; if false, spaces are used instead.
-tabwidth=8
Tab width in spaces.