Go - If with a Twist

Corner·2022년 5월 17일
0

Go

목록 보기
7/9


Go에서 조건문 if문은 매우 간결한 문법을 사용합니다.

다른 언어에서는

if (조건) {
  내용
} else {
  내용
} 
a === b ? true : false

괄호안에 조건문을 사용하는 문법을 사용했었지만, Go에서는 바로 조건을 사용합니다.

if age < 20 {
  ...
} else {
 	...
}

일반적으로 알고있는 If문에서 괄호가 생략되었다고 보시면 됩니다.

func canIdrink(age int) bool {
   if age < 20 {
      return false
   } else {
      return true
   }
}

func main() {
   fmt.Println(canIdrink(18))
}

여기서 코드를 조금 더 정리해보자면

인자값에 "변수"가 아닌 상수를 넣었기 때문에, else문은 사실 필요가 없습니다.

func canIdrink(age int) bool {
   if age < 20 {
      return false
   }
  return true
}

func main() {
   fmt.Println(canIdrink(18))
}

이런식으로 어떻게하면 불필요한 코드를 생략하는지, 짧은 코드로 필요한 기능만 담아낼 수 있도록 머리를 짜내고 고민해야합니다.

그래야지 코드를 짜는데 있어서 실력도 오르고, 좋은 습관을 들이는 것이기 때문에 점차 경력이 쌓이면서도 깔끔한 코드를 만들 수 있습니다.

지금이야 이렇게 간단한 문법으로 하지만, 앞으로는 많은 데이터를 다룰 때 더 넓은 시야로 살펴야합니다.

그리고 if문에서 변수를 생성할 수도 있습니다.

Javascript에서 또는 Java를 포함한 다른 언어에서도 마찬가지로 if문에서 변수를 선언하는 것은 선호하지 않습니다. 정말 예외 경우가 아니라면요.

그래서 if문 밖에서 변수를 선언하고 if문 조건식에 해당 변수를 사용한다던가 그러한 코드를 짜야했습니다.

하지만, Go에서는 조건을 체크하기 직전 variable을 만들 수 있습니다.

How?

	if koreanAge := age + 2; koreanAge < 18 {
		return false
	} else {
		return true
	}

(age + 2)라는 계산식을 담은 koreanAge 변수를 선언하고 ;세미콜론으로 닫습니다.

이 부분은 대단하다고 느껴집니다. 실제로 얼마나 필요할지는 사용하기 나름에 달려있습니다.

정말 이 변수가 if문에서만 사용되고, 걸러질 것이라면 if문에 변수를 선언하고 사용한다면 다른 리뷰어가 코드를 볼 때 명확하게 이해할 수 있다는 점입니다.

만약 이 변수가 if문 밖에서 사용된다면, 어딘가에서도 사용하고 있다는 것으로 인지할 수도 있습니다.

Go언어의 매력은 코드를 조금 더 명확하게 볼 수 있고, 간결하지만 더 많이 어떠한 의도로 짜여졌는지 이해할 수 있습니다.

profile
Full-stack Engineer. email - corner3499@kakao.com,

0개의 댓글