[go] Go 언어에서 함수 리터럴
Go 언어는 함수를 값으로 사용할 수 있는 함수 리터럴을 지원합니다. 함수 리터럴은 익명 함수로서 변수에 할당하거나 다른 함수의 인자로 전달할 수 있습니다. 이를 통해 코드를 더욱 유연하고 모듈화할 수 있습니다.
함수 리터럴의 기본 구조
함수 리터럴은 아래와 같은 기본 구조로 작성됩니다.
func(매개변수) 반환타입 {
// 함수의 본문
}
func
: 함수를 선언하는 키워드입니다.(매개변수)
: 함수에 전달되는 매개변수의 이름과 타입을 정의합니다.반환타입
: 함수가 반환하는 값의 타입을 정의합니다.{}
: 함수의 본문을 감싸는 중괄호입니다.
함수 리터럴 사용하기
함수 리터럴은 변수에 할당하여 사용할 수 있습니다. 아래 예제는 “Hello, World!”를 출력하는 익명 함수를 선언하고, 이를 변수에 할당하여 호출하는 예시입니다.
package main
import "fmt"
func main() {
greeting := func() {
fmt.Println("Hello, World!")
}
greeting() // 함수 호출
}
변수 greeting
에 함수 리터럴을 할당하고, greeting()
을 호출하여 함수를 실행합니다.
함수 리터럴을 다른 함수의 인자로 전달하기
함수 리터럴을 다른 함수의 인자로 전달하는 것도 가능합니다. 아래 예제는 calculate
함수를 정의하고 이를 호출하는 방법을 보여줍니다.
package main
import "fmt"
func calculate(a, b int, operation func(int, int) int) int {
return operation(a, b)
}
func main() {
result := calculate(10, 5, func(a, b int) int {
return a + b
})
fmt.Println(result) // 15
}
calculate
함수는 첫번째 인자와 두번째 인자를 받아서 operation
함수에 전달합니다. operation
함수는 두 수를 더한 값을 반환하도록 정의됩니다.
함수 리터럴을 사용하여 a
와 b
를 더하고, 그 결과를 출력합니다.
결론
Go 언어에서는 함수 리터럴을 활용하여 함수를 값으로 다룰 수 있습니다. 이를 통해 코드의 유연성과 모듈화를 높일 수 있습니다. 함수 리터럴은 변수에 할당하여 사용하거나, 다른 함수의 인자로 전달하는 등 다양한 상황에서 활용될 수 있습니다.
더 자세한 내용은 Go 공식 문서를 참고하시기 바랍니다.