728x170
안녕하세요?
고랭의 클로저 함수에 대해 알아 보겠습니다.
클로저는 익명 함수(anonymous function)의 특별한 경우입니다.
클로저는 함수 본문 외부에 정의 된 변수에 액세스하는 익명 함수입니다.
예제를 통해 설명하겠습니다.
package main
import "fmt"
func main() {
l := 20
b := 30
func() {
// area 라는 int 타입의 변수를 설정합니다.
var area int
// 이 변수에 l과 b를 이용해 값을 저장합니다.
// 그런데 l 과 b는 area가 현재 있는 스코프에 없는 변수입니다.
// 그러나 이 익명 함수는 클로저라는 특별한 케이스로
// 본문 외부에 정의된 변수인 l과 b에 액세스 가능합니다.
area = l * b
fmt.Println(area)
}()
}
두번째 예를 보겠습니다.
package main
import "fmt"
func main() {
for i := 10.0; i < 100; i += 10.0 {
// 함수 본문 내부의 루프 반복마다 변수에 액세스하는 익명 함수입니다.
rad := func() float64 {
return i * 39.370
}()
fmt.Printf("%.2f Meter = %.2f Inch\n", i, rad)
}
}
그리드형
'코딩 > GoLang' 카테고리의 다른 글
GoLang 배열 및 배열의 값 복사, 참조 복사 (0) | 2021.02.03 |
---|---|
GoLang 함수 파라미터에 가변인자 쓰기 (0) | 2021.02.03 |
GoLang 익명 함수(Anonymous Function) (0) | 2021.01.28 |
GoLang의 Higher Order Function (0) | 2021.01.28 |
GoLang에서 Map Iterate, add, update 하기 (0) | 2021.01.28 |