협업에 있어서 포매팅이 다른 것은 중요한 이슈는 아니지만 논쟁거리임
포매팅 주제에 덜 신경을 쓰게된다면 더 좋을 것이다.
Go에서는 머신에게 대다수의 포매팅 이슈를 처리하도록 할 수 있음
gofmt 은 Go프로그램을 읽은 뒤, 표준 스타일의 들여쓰기와 수직정렬, 유지 그리고 필요한 주석을 재포맷팅한 소스를 내놓음
type T struct {
name string // name of the object
value int // its value
}
위 코드를 다음과 같이 수정함
type T struct {
name string // name of the object
value int // its value
}
포매팅의 대표적인 특징인 다음과 같다.
들여쓰기
들여쓰기를 위해 탭(tabs)을 사용하며, gofmt는 기본값으로 탭을 사용한다. 만약 꼭 써야하는 경우에만 스페이스(spaces)를 사용하라.
한 줄 길이
Go는 한 줄 길이에 제한이 없다. 길이가 길어지는것에 대해 걱정하지 마라. 만약 라인 길이가 너무 길게 느껴진다면, 별도의 탭을 가지고 들여쓰기를하여 감싸라
괄호
Go는 C와 Java에 비해 적은 수의 괄호가 필요하다. 제어 구조들(if, for, switch)의 문법엔 괄호가 없다. 또한 연산자 우선순위 계층이 간단하며 명확하다. 아래를 보자.
x<<8 + y<<16
다른 언어와는 다르게 스페이스의 사용이 함축하는 바가 크다.