将参��传递给Go IIFE(以下是JavaScript示例)

4

我习惯于使用JavaScript编程,在其中,我可以采用以下方式将参数传递给立即调用的函数表达式:

(function(twoSeconds) {
    // do something with "twoSeconds" here
})(2 * 1000);

所以我期望在Go语言中也能做类似的事情,像下面这样。然而,它似乎不起作用。

func (twoSeconds) {
    // build error: "twoSeconds" undefined
}(time.Second * 2)

因此,我必须这样做:
func () {
    twoSeconds := time.Second * 2
}()

因此,我的问题是如何将参数传递给Go IIFE?如果不可能,为什么呢?
1个回答

10

Go中的函数参数需要类型。因此,按照以下方式操作:

func(twoSeconds time.Duration) {
    // use twoSeconds
}(time.Second * 2)

1
哦,当然,现在很明显了,我不敢相信我错过了那个!无论如何,感谢您的帮助,已经点赞并接受了。 - user162097

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接