ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Golang] 명명된 함수형 (Named Function)
    언어/Golang 2017. 2. 8. 20:48

    명명된 자료형과 마찬가지로 함수 또한 사용자가 정의할 수 있습니다.


    type BinOp func(int, int) int

    두 정수를 넘겨받아 정수 하나를 반환하는 함수형을 BinOp형으로 정의하였습니다. 명명된 함수형도 자료형 검사를 실행합니다.


    func Test(f BinOp) {
    	fmt.Println(f(3, 4))
    }

    위의 함수를 호출할 때, 아래와 같이 호출한다고 가정합니다.


    Test(func (a, b int) int {
    	return a+b
    })

    Test는 BinOp형을 인자로 받는데, 호출 시에는 그냥 정수 둘을 받ㄱ 정수 하나를 반환하는 함수를 넘겨줬습니다. 위의 코드는 컴파일 에러를 발생하지 않습니다. func(a, b int) int 자료형이 명명되지 않은 자료형이기 때문입니다. 양쪽 모두 명명된 자료형이 아니면 서로 간에 호환됩니다.

    댓글