Go If with a Twist

If with a Twist

package main

import "fmt"

func canIDrink(age int) bool{
	if age < 18{
		return false
	}

	return true
}

func main() {
	fmt.Println(canIDrink(16))
}

if문을 쓸 때 java처럼 괄호를 필요로 하지 않으며,

python에서 사용하는 : 기호 또한 필요하지 않는다.

아주 심플하게 작성할 수 있다.

여기까지는 그냥 음~ 그런가보다 하는데 더욱 놀라운 기능이 하나 더 있다.

package main

import "fmt"

func canIDrink(age int) bool{
	if koreanAge := age +2; koreanAge < 18{
		return false
	}

	return true
}

func main() {
	fmt.Println(canIDrink(16))
}

그것은 바로 if문 안에 변수를 선언할 수 있다는 점이다.

물론 아래와 같이 선언하는 것과 기능은 같다.

package main

import "fmt"

func canIDrink(age int) bool{
	koreanAge := age +2
	if koreanAge < 18{
		return false
	}

	return true
}

func main() {
	fmt.Println(canIDrink(16))
}

그러나 go에서 이러한 기능을 제공하는 이유를 생각해보자.

만약 if 조건부에 변수 선언이 되어있다면 다른 사람이 코드를 볼때 “아 이 변수는 이 조건문에서만 쓰이는구나” 하고 알 수 있다는 사실이다.

이는 Go의 아주 세련된 문법이기도 하며 가독성을 중요하게 생각했다는 것을 알 수 있다.

Reference

Nomad Coder - 니꼴라스 선생님



© 2022. by minkuk

Powered by minkuk