最新消息:vps推荐

golang 函数

go Terry 428浏览 0评论

函数也是值。它们可以像其它值一样传递。函数值可以用作函数的参数或返回值。

package main

import (
  "fmt"
)

func main()  {
        //声明一个函数赋值给变量fn
  fn := func(i,j int) int {
    return i*j
  }
  fmt.Println(test(fn)) //12
}

//函数的入参是一个函数
func test(fn func(int,int) int) int  {
  return fn(3,4)
}
package main

import (
  "fmt"
)

func main()  {
  fn := test()
  fn2 := test2()
  for i:=0;i<10;i++{
    fmt.Println(fn(i),fn2(i))
  }
}

func test() func(int)int  {
  return func(i int) int {
    return i
  }
}

func test2() func(int) int  {
  sum := 0
  return func(i int) int {
    sum += i
    return sum
  }
}

输出

0 0
1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36
9 45

此情况返回函数值,它引用了其函数体之外的变量,该函数可以访问并赋予其引用的变量的值。

转载请注明:Terry's blog » golang 函数

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址