
143
5
장
함수
type opFuncType func(int,int) int
opMap
변수 선언을 다시 작성하면, 다음과 같이 된다.
var opMap = map[string]opFuncType {
// 앞선 코드와 동일
}
함수는 전혀 손댈 필요가 없다. 두 개의 정수 입력 파라미터를 가지고 정수 단일 반환값을 가지
는 모든 함수는 타입을 만족시키며 맵에서 값으로 할당될 수 있다.
함수 타입을 선언하는 것에 장점은 무엇일까? 한가지 용도는 문서화이다. 여러 번 참조하려는
경우 이름을 부여할 수 있어 유용하다. 다른 용도는
7
.
13
절 ‘함수 타입은 인터페이스로의 연결’
에서 살펴볼 것이다.
5.2.2
익명 함수
함수를 변수에 할당할 뿐만 아니라, 함수 내에 새로운 함수를 정의하여 변수에 할당할 수 있다.
이런 이름이 없는 내부 함수를 익명 함수
anonymous
function
라 한다. 또한 해당 함수를 변수에 할당
할 필요도 없다. 함수를 인라인으로 작성하고 바로 호출할 수 있다.
Go
플레이그라운드
4
에서
간단히 실행 가능한 예제를 살펴보자.
func main() {
for i := 0; i < 5; i++ {
func(j int) {
fmt.Println(“printing”, j, “from inside of an anonymous function”)
}(i) ...