Skip to content

Latest commit

 

History

History
30 lines (23 loc) · 652 Bytes

Anonymous_Function.md

File metadata and controls

30 lines (23 loc) · 652 Bytes

익명함수란 함수명을 갖지 않는 함수를 의미한다.

func testAnonymousFunction() int {
	sum := func(x int, y int) int {
		return x + y
	}
	return sum(1,2)
}

Go에서 함수는 일급객체로 취급되기 때문에 함수의 파라미터 및 리턴값으로 사용될 수 있다.

func testAnonymousFunction() int {
	sum := func(x int, y int) int {
		return x + y
	}
	return calcSumAndMultiply(sum, 1, 2, 3)
}

type calculator func(int, int) int

func calcSumAndMultiply(sum calculator, x int, y int, z int) int {
	return sum(x, y) * z
}

참고로, go는 type을 통해 Delegate 기능을 제공한다.