출처:
http://tour.golang.org/#36
함수는 값이다.
package main
import (
"fmt"
"math"
)
func main() {
hypot := func(x, y float64) float64 {
return math.Sqrt(x*x + y*y)
}
fmt.Println("---------------------")
fmt.Println( hypot(3, 4))
fmt.Printf( "%T\n", hypot)
fmt.Println("---------------------")
}
D:\DEV\PP\work_4\src>go run hello65.go
---------------------
5
func(float64, float64) float64
---------------------
함수는 값이다. ( Functions are values too. )
런타임에 값의 타입을 정확히 가져올 수 있다는 말은,
Reflection 이 된다는 얘기다.
C++ 로만 말하던 나는,
Java 의 Reflection 이 부러웠다.
Python 의 Reflection 이 부러웠다.