上代码:
func(name string) {
fmt.Println("Your name is", name)
} (str) //这里的(str)是?
解答:
其实,这就是在调用这个函数,这种写法等同于:
f := func(name string) {
fmt.Println("Your name is", name)
}
f(str) //看吧,就是把函数复制给变量,变量(函数)传参
以下两段代码执行结果等同:
代码一:
package main
import (
"fmt"
)
func main() {
str := "xulinlin"
func(name string) {
fmt.Println("Your name is", name)
}(str)
}
代码二:
package main
import (
"fmt"
)
func main() {
f := func(name string) {
fmt.Println("Your name is", name)
}
f(str)
}
输出都是:
Your name is xulinlin