특정한 처리를 하거나 원하는 처리를 한 경우 숫자를 하나씩 증가하는 변수를 만드는 경우가 있습니다.
증가하는 처리를 +1 이나 ++ 연산자를 사용해서도 할 수 있지만 익명 함수 를 사용해서도 기능을 만들 수 있습니다.
카운터 함수 예제
package main
import "fmt"
func main() {
errCountFunc := errCount()
fmt.Println(errCountFunc())
fmt.Println(errCountFunc())
fmt.Println(errCountFunc())
fmt.Println(errCountFunc())
}
func errCount() func() string {
var count int
return func() string {
count++
return fmt.Sprintf("err count is %d", count)
}
}
결과
err count is 1
err count is 2
err count is 3
err count is 4
미리 만들어놓은 errCount 함수에서는 호출될 때마다 변수 count를 1씩 증가시킨 후 출력을 하고 있습니다.
카운터만 해야 하는 경우라면 굳이 함수로 만들 필요는 없겠지만 로그에 출력을 해야 하거나 하는 경우라면 함수로 만들어서 사용하는 것이 편리합니다.
댓글