Go는 closures를 만들 수 있는 anonymous functions를 지원합니다. 익명 함수(Anonymous functions)는 이름 없이 한줄로 함수를 정의하고 싶을때 유용합니다. |
|
package main
|
|
import "fmt"
|
|
|
func intSeq() func() int {
i := 0
return func() int {
i += 1
return i
}
}
|
func main() {
|
|
|
nextInt := intSeq()
|
|
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
|
특정 함수에서 상태값이 유일한지 확인하기 위해, 하나를 새롭게 생성하고 테스트 해봅니다. |
newInts := intSeq()
fmt.Println(newInts())
}
|
$ go run closures.go
1
2
3
1
|
|
함수에서 마지막으로 살펴볼 기능은 다음에 바로 살펴볼 재귀입니다. |
다음 예제: 재귀.