1. 함수
Go 언어에서 함수(Function)은 특정 작업에 수행하는 코드 블록으로, 함수를 정의 후 호출해 사용할 수 있고, 반환 값이 있을 수 있습니다. Go에서는 다중 반환 값을 지원합니다. Go 함수 특징은 다음과 같습니다.
- 일급 객체: 함수는 변수에 할당할 수 있으며, 매개변수로 전달하거나 반환값으로 사용 가능
- 다중 반환: 하나의 함수에서 여러 개의 값을 반환할 수 있음
- 고계 함수: 함수를 매개변수로 받거나 반환하는 함수를 정의할 수 있음
- 익명 함수: 이름이 없는 함수를 정의할 수 있으며, 필요할 때 즉시 호출 가능
- 클로저: 함수가 자신이 정의된 환경(변수 등)을 기억
2. 함수 정의 및 사용법
Go에서 함수를 선언하려면 함수 정의 func를 사용해 값을 반환하면 됩니다.
func 함수이름(매개변수타입 매개변수이름) 반환값타입 {
// 함수 본문
return 반환값
}
- 기본 함수
- 기본적인 형태로, 특정 작업을 수행
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
func main() {
result := add(2, 3)
fmt.Println("result:", result)
}
- 다중 반환 함수
- 여러 값을 반환하는 함수
package main
import "fmt"
func divide(a int, b int) (int, int) {
return a / b, a % b
}
func main() {
quotient, remainder := divide(10, 5)
fmt.Println("result:", quotient, "나머지:", remainder)
}
- 익명 함수
- 이름이 없는 함수를 정의
package main
import "fmt"
func main() {
func() {
fmt.Println("Not Name Function")
}()
}
- 고계 함수
- 함수를 매개변수로 사용하는 함수
package main
import "fmt"
func add (a int, b int) int {
return a + b
}
func apply(f func(int, int) int, x int, y int) int {
return f(x, y)
}
func main() {
result := apply(add, 2, 3) // 5
fmt.Println(result) // 5
}
- 클로저
- 외부 변수를 캡처하여 사용할 수 있는 함수
package main
import "fmt"
func makeCounter() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
counter := makeCounter()
fmt.Println(counter()) // 1
fmt.Println(counter()) // 2
}
요약
- Go 언어의 함수는 일급 객체로, 다중 반환, 고계 함수, 익명 함수, 클로저 등 다양한 특징을 가짐
- 함수는 정의 후 호출하여 사용할 수 있으며, 여러 형태로 활용 가능
GitHub - Koras02/Go-Bloging: https://thinky.tistory.com/category/Back-End/Go
https://thinky.tistory.com/category/Back-End/Go. Contribute to Koras02/Go-Bloging development by creating an account on GitHub.
github.com
LIST
'Back-End > Go' 카테고리의 다른 글
[Go] 6장 맵 (0) | 2025.03.03 |
---|---|
[GO] 5장 배열과 슬라이스 (0) | 2025.02.28 |
[Go] 3장 제어 구조 (0) | 2025.02.24 |
[Go] 2장 변수와 데이터 타입 (0) | 2025.02.22 |
[GO] 1장 Go란 무엇인가? 컴파일 언어 (0) | 2025.02.22 |