2012년 4월 30일 월요일

Functions are values too.


출처: 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 이 부러웠다.