go语言中函数定义结尾的小括号是怎么回事

    func(name string) {
        fmt.Println("Your name is", name)
    } (str)   <- what's this?

其实,这就是在调用这个函数,等同于:

    f := func(name string) {
        fmt.Println("Your name is", name)
    }
    f(str)

例如,

package main

import (
  "fmt"
)

func main() {
    str := "Alice"
    func(name string) {
        fmt.Println("Your name is", name)
    }(str)
}

运行结果:

Your name is Alice

又如:

package main

import (
  "fmt"
)

func main() {
    f := func(name string) {
        fmt.Println("Your name is", name)
    }
    f(str)
}

运行结果一样的。

参考

https://stackoverflow.com/questions/16008604/why-add-after-closure-body-in-golang

你可能感兴趣的:(go语言中函数定义结尾的小括号是怎么回事)