1. package main
    2. import (
    3. "fmt"
    4. "unsafe"
    5. )
    6. func main() {
    7. a := func() {
    8. fmt.Println("Hello")
    9. }
    10. a()
    11. fmt.Printf("a的type类型%T和字节长度%d",a,unsafe.Sizeof(a)) //a的type类型func()和字节长度8
    12. fmt.Println(a) //输出函数地址
    13. }

    结尾加上参数

    1. package main
    2. import (
    3. "fmt"
    4. )
    5. func main() {
    6. msg := "world"
    7. // 结尾加了 () 在声明的时候直接执行
    8. func(m string) {
    9. fmt.Println(m)
    10. }(msg)
    11. }

    作为类型来使用

    1. package main
    2. import (
    3. "fmt"
    4. )
    5. // 定义为一种类型
    6. type add func(a, b int) int
    7. func main() {
    8. // 使用这种类型来定义匿名函数
    9. var a add = func(a, b int) int {
    10. return a + b
    11. }
    12. s := a(1, 2)
    13. fmt.Println(s)
    14. }