공부/GO

Go 언어의 세미콜론 ;

제이든초이 2023. 7. 4. 05:49

Go언어는 세미콜론을 생략하여 사용한다.

정확하게 말하자면 세미콜론을 생략할 수 있다.

https://go.dev/doc/effective_go

 

Effective Go - The Go Programming Language

Documentation Effective Go Effective Go Introduction Go is a new language. Although it borrows ideas from existing languages, it has unusual properties that make effective Go programs different in character from programs written in its relatives. A straigh

go.dev

위 글에서 매우 잘 나와있는데, SemiColons에 대한 항목을 정리하자면 다음과 같다.

Go의 정규 문법은 C와 같이 문장의 끝마다 세미콜론을 붙여 사용한다. 다만 C랑 다르게 이를 생략하여 사용한다. 아주 간단한 규칙이다. 낱말 분석기(lexer)가 줄의 맨 뒤에 있는 token(문법의 최소 단위)을 인식할 때, 이것이 문장을 종결할 수 있을 때(예. break, continue) 세미콜론을 붙인다. 예를 들어 +기호는 그 자체로 문장을 종결할 수 없다. 이외에도 닫는 중괄호 앞에 세미콜론을 붙인다거나, 파일의 끝에 세미콜론을 붙이는 등의 세부규칙이 있다.

break // -> break;

x := 1 +
2 // no error

if true {fmt.Println("no error")} // 닫는 중괄호 앞에 삽입

아래 코드는 이러한 특징을 보여주는 극단적인 예시이다. 아래는 컴파일 시 오류가 발생하는데, 이는 f()가 함수 호출이고 줄의 맨뒤이기 때문에 세미콜론이 삽입되기 때문이다.

if i < f()
{
  go()
}

// 세미콜론 삽입 후
if i < f(); // error!
{ // error!
  go();
}

따라서 코드를 작성할 때 세미콜론을 유의해서 작성해야 한다. Go 언어의 일반적인 코드 스타일은 필요한 부분을 제외하고 세미콜론을 생략하는 것이다. 꼭 필요한 코드가 있다 하더라도 여러 줄에 쓰면 웬만하면 모두 해결되니 그것이 훨씬 더 간결한 경우를 제외하고는 그냥 개행해서 알아서 세미콜론이 붙게 쓰도록 하자.

 

요약

1. Go 언어는 세미콜론을 쓰지만 생략할 수 있다.

2. 알잘딱해서 붙여줌.

3. 좋은 코드를 작성하면 문제될 일 없다.