이전 공부에서 golang의 함수에 대해서 정리를 했었다.
오늘 정리할 내용은 익명 함수에 관한 내용이다.
파이썬에서 Lambda와 비슷한 맥락이라고 봐도 될 것 같다.
Go에서 익명 함수란?
익명 함수는 말 그대로 이름이 없는 함수이다.
함수는 하나의 큰 프로그램을 여러 부분으로 나누고, 여러 상황에서 여러 차례 호출할 수 있으며 일부분을 수정하기 쉽다는 장점을 가진다.
그렇다면 익명함수는 어떤 녀석이고 어떻게 호출할까?
익명함수는 그 자리에서 만들고 바로 그 자리에서 실행할 수 있다는 장점이 있다. 사실 익명 함수의 쓰임새는 말로 설명하는 것보다 직접 상황이 돼봐야 이해할 수 있을 것이다.
(링크 - 실제로 내가 파이썬에서 익명 함수를 사용했던 경우이다.)
Go에서 익명 함수의 형태는 함수의 이름만 없고 그 외에 형태는 동일하다. 그리고 함수의 선언이 끝난 뒤 바로 괄호 연산자를 사용하여 호출할 수 있다.
기본 문법
package main
import "fmt"
func main() {
func() {
fmt.Println("안녕하세요 익명함수입니다.")
}()
func(a int, b int) {
fmt.Println(a, "와", b, "를 입력받은 무명 함수입니다.")
}(3, 4)
}
변수에 익명 함수로 초기화한다면, 변수 이름을 함수처럼 사용할 수 있는 기능도 제공한다.
package main
import "fmt"
func main() {
FuncName := func(a int, b int) int {
fmt.Println("변수에 ", a, "와", b, "를 더해주는 익명함수를 대입했습니다.")
return a + b
}
fmt.Println(FuncName(1, 2))
fmt.Println(FuncName(3, 4))
}
마무리
간단하게 익명 함수에 대해 정리하는 시간이었다.
취업 준비 때문에 개인적인 공부 시간이 점점 줄고 있다. 괴롭다..
*구름 edu의 바로 실행해보면서 배우는 Go Lang"을 수강 후 정리한 내용입니다.
소스코드는 깃허브 저장소를 참고!
'Computer_Language > GO' 카테고리의 다른 글
[Go] 12. Go(golang)의 메소드(method) (0) | 2019.12.07 |
---|---|
[Go] 11. Go(golang)의 구조체(struct) (0) | 2019.12.05 |
[Go] 9. Go(golang)의 함수(func) (0) | 2019.10.20 |
[Go] 8. Go(golang)의 맵(map) (1) | 2019.10.07 |
[Go] 7. Go(golang)의 배열과 슬라이스 (0) | 2019.10.01 |