새로운 언어를 학습하다보면 이전에 사용하던 언어와 비교하게됩니다.

아무래도 사용하던 언어에 익숙하기 때문이죠.

C언어를 주력으로 사용하다 보니 새로운 go언어를 학습하면서도

C언어와 비교하고 어뚱하게 C언어에 더욱 집찹하게 됩니다.


비교되는 내용 중 하나가 switch 문입니다.

if 보다는 문 대신에 switch 문을 사용하는데

switch문은 실행 속도를 높이기 위함인지 비교 대상이 상수이죠.

그래서 어쩔 수 없이 if 문을 사용하게 됩니다만,

go언어는 상수 외에도 비교 대상을 if 문처럼 다양하게 지정할 수 있습니다.

예를 들어 함수까지 사용할 수 있지요.


func comp( x int ) int{

   return x / 2;

}


func main(){

   i := 2;

 

   switch i {

   case comp(1):

       fmt.Println( "1")

   case comp(2):

       fmt.Println( "2")

   case comp(3):

       fmt.Println( "3")

   case comp(4):

       fmt.Println( "4")

   case comp(5):

        fmt.Println( "5")

   }

}


어떻습니까? go언어 재미있죠? ^^