[go] Go 언어의 함수
Go 언어는 강력한 함수 기능을 제공하여 코드의 모듈화와 재사용성을 높일 수 있습니다.
함수 정의
Go에서 함수는 func
키워드를 사용하여 정의됩니다.
예시:
func add(a, b int) int {
return a + b
}
위의 예시에서 add
함수는 두 개의 정수형 인자를 받아들이고, 정수형 값을 반환합니다.
가변 매개변수
Go에서는 가변 개수의 인자를 받을 수 있는 가변 매개변수를 지원합니다.
예시:
func sum(numbers ...int) int {
total := 0
for _, num := range numbers {
total += num
}
return total
}
위의 예시에서 sum
함수는 임의의 개수의 정수형 인자를 받아들이고, 그 합을 반환합니다.
익명 함수
익명 함수는 이름이 없는 함수로, 변수에 할당되거나 다른 함수에 전달될 수 있습니다.
예시:
func main() {
add := func(a, b int) int {
return a + b
}
result := add(3, 4)
fmt.Println(result) // 결과: 7
}
클로저
클로저는 외부 변수를 참조하여 내부에 익명 함수를 정의하는 것을 의미합니다.
예시:
func multiplier(x int) func(int) int {
return func(y int) int {
return x * y
}
}
func main() {
double := multiplier(2)
triple := multiplier(3)
fmt.Println(double(5)) // 결과: 10
fmt.Println(triple(5)) // 결과: 15
}
위의 코드에서 multiplier
함수는 클로저를 반환하며, 클로저는 외부 변수 x
를 참조하여 계산을 수행합니다.
함수는 Go 언어에서 중요한 개념이므로, 함수를 효과적으로 활용하여 모듈화된 코드를 작성하고 유지보수하기 위해 자세히 이해하는 것이 중요합니다.