Go lang - 8 : 익명 함수
익명함수
함수 내부에서 새로운 함수를 정의해서 변수로 할당해서 반환할 수 있다.
이렇게 이름이 없는 함수는 '익명 함수'라고 불린다.
두 내용을 합쳐보자
package main
import "fmt"
type BaseNumType func(int) int
func makeAdd(base int) BaseNumType {
return func(num int) int { // 여기
return base + num
}
}
func makeMul(base int) BaseNumType {
return func(num int) int { // 여기
return base * num
}
}
func main() {
twoBaseAdd := makeAdd(2)
threeBaseAdd := makeAdd(3)
twoBaseMul := makeMul(3)
threeBaseMul := makeMul(3)
for i := 0; i < 3; i++ {
fmt.Println("add : ", twoBaseAdd(i), threeBaseAdd(i))
fmt.Println("mul : ", twoBaseMul(i), threeBaseMul(i))
}
}
main 에서 만들어진 4개의 변수는 마치 함수처럼 동작하고 있다. (사실 함수 맞다)
다른 언어에서도 익명 함수는 많이 쓰이고 있는데,
사실 함수형으로 개발하기 좋아서 빨리 배우고 싶었다.
Console
Author And Source
이 문제에 관하여(Go lang - 8 : 익명 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@phoenix/Go-lang-8-익명-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)