go语言 函数的例子
以前学习c语言的时候,觉得c语言写的玩意儿就是一堆函数的相互嵌套,想想头大,后来学c++后,发现类也是个好东西,可以抽象很多概念如下是go的函数例子,相对而言比c++这种古老级语言,花花肠子更多,如下:
package basicuse
import (
"fmt"
"math"
)
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
//TestReturnFunction 函数返回函数,函数也是一种值
func TestReturnFunction() {
//函数也是值
hypot := func(x, y float64) float64 {
return math.Sqrt(x*x + y*y)
}
fmt.Println(hypot(3, 4))
// 函数的闭包
//TODO 函数的闭包的理解
fmt.Println(" function-value 闭包")
pos, neg := adder(), adder()
for i := 0; i < 10; i++ {
fmt.Println(
pos(i),
neg(-2*i),
)
}
}
页:
[1]