匿名函数的定义和使用

package main

import "fmt"

func main() {
   num1 := 2
   num2 := 5

   // 定义一个匿名函数,并立即调用
   add := func(int1 int, int2 int) int {
      return int1 + int2
   }(num1, num2) // 重要提醒:在匿名函数尾部加上“()”表示立即调用函数,括号里的两个实参分别对应函数的形参。
   fmt.Printf("add = %+v \n", add) // add = 7

   // 定义一个匿名函数,并将其赋值给一个变量
   funcAdd := func(int1 int, int2 int) int {
      return int1 + int2
   }
   fmt.Printf("变量funcAdd的类型是:%T \n", funcAdd) // 变量funcAdd的类型是:func(int, int) int

   ret1 := funcAdd(10, 24)
   ret2 := funcAdd(20, 48)
   fmt.Printf("ret1 = %+v \n", ret1) // ret1 = 34
   fmt.Printf("ret2 = %+v \n", ret2) // ret2 = 68
}

//========== 总结 ==========//
// 1、匿名函数主要用在只需要调用一次的场景,但是也可以通过把匿名函数赋值给变量的方式实现多次调用。
// 2、匿名函数的调用方式是在其尾部加上“()”,如需传入参数可以把参数写在“()”里面,需要注意的是传入参数的个数和数据类型必
//    须和匿名函数的形参保持完全一致。

Copyright © 2024 码农人生. All Rights Reserved