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