Go语言中文网 为您找到相关结果 10

go的匿名函数和闭包

go的匿名函数: func no_func() { // 匿名函数 1 f := func(i, j int) (result int) { // f 为函数地址 result = i + j return result } fmt.Fprintf(os.Stdout, "f = %v f(1,3) = %v\n", f, f(1, 3)) // 匿名函数 2 func(i, j int) (m, n int) { // x y 为函数返回值 return j, i }(1, 9) // 直接创建匿名函数并执行 } go的闭包: func adder() func(int) int { sum := 0 return func(x int) int { sum += x return sum...阅读全文

博文 2015-07-20 15:00:01 webyh

Go语言闭包的小例子

例子1 package main import ( "fmt" ) func main() { f := closer(10) //fmt.Println(f(1)) //fmt.Println(f(2)) f(1) f(2) } func closer(x int) func(int) int { fmt.Printf("%p\n", &x) return func(y int) int { fmt.Printf("%p\n", &x) return x + y } } 打印结果是: 0x118400e8 0x118400e8 0x118400e8 例子2 package main import ( "fmt" ) func main() { for i := 0; i < 3; i++ ...阅读全文

博文 2014-12-20 19:00:02 itfanr