
Go 언어는 깔끔하고 명확한 코드 작성을 지양한다. 이런 철학 때문에 Go에는 다른 언어에서 자주 사용하는 삼항 연산자(?:)가 없다. 이 글에서는 왜 Go에 삼항 연산자가 없는지, 그리고 같은 결과를 얻기 위해 어떤 방법을 사용할 수 있는지 살펴본다.
삼항 연산자란 무엇인가?
삼항 연산자는 조건에 따라 값을 선택하는 짧은 방법이다. 예를 들어, C와 같은 언어에서 삼항 연산자는 다음과 같이 사용할 수 있다:
n = (expr) ? trueVal : falseVal;
이 코드는 expr이 참이면 trueVal을, 거짓이면 falseVal을 n에 대입한다. 간단하고 편리하게 조건문을 사용할 수 있는 방법이다.
Go에서 삼항 연산자를 대신하는 방법
Go에서는 삼항 연산자를 사용할 수 없지만, 같은 결과를 얻기 위해 if-else 문을 사용할 수 있다. 예를 들어:
if expr {
n = trueVal
} else {
n = falseVal
}
이 코드는 삼항 연산자와 동일한 기능을 수행하지만, 더 길고 명확하게 작성된다.
왜 Go에는 삼항 연산자가 없을까?
Go 언어의 설계자들은 삼항 연산자가 복잡하고 난해한 표현식을 만드는 데 자주 사용되는 것을 보았다. 삼항 연산자가 있으면 코드가 짧아지지만, 그만큼 가독성이 떨어지고 이해하기 어려운 코드가 될 수 있다. Go 언어는 명확하고 읽기 쉬운 코드를 지향하기 때문에, 삼항 연산자를 배제하고 if-else 문만을 사용하도록 하였다.
삼항 연산자를 사용하면 코드가 짧아질 수 있지만, Go 언어의 철학은 명확하고 명시적인 코드를 작성하는 것이다. 따라서 if-else 문이 더 길더라도, 코드의 명확성을 높이는 데 기여한다.
결론
Go 언어에서 삼항 연산자가 없는 이유는 코드의 명확성과 가독성을 높이기 위해서이다. 삼항 연산자 대신 if-else 문을 사용하여 조건문을 작성하면, 더 명확하고 이해하기 쉬운 코드를 작성할 수 있다. 이는 Go 언어가 지향하는 깔끔하고 명확한 코드 작성을 위한 중요한 원칙 중 하나이다.
참고
Why does Go not have the ?: operator?
What is the idiomatic Go equivalent of C's ternary operator?
'Golang' 카테고리의 다른 글
[Golang] Go 언어에서의 패키지 이름 짓기 (no under_scores or mixedCaps) (0) | 2024.08.07 |
---|---|
[Golang] Go 언어에서 제네릭 메서드를 지원하지 않는 이유 (0) | 2024.08.07 |
[Golang] Go 언어에서 Interface(인터페이스)를 사용하여 다양한 데이터 유형을 처리하기 (0) | 2024.07.30 |