将参数传递给 Go IIFE(遵循 javascript 示例)

use*_*097 2 javascript go iife

我习惯于在 javascript 中编程,我可以执行以下操作将参数传递给立即调用的函数表达式:

(function(twoSeconds) {
    // do something with "twoSeconds" here
})(2 * 1000);
Run Code Online (Sandbox Code Playgroud)

所以我希望能够在 Go 中做类似的事情,如下所示。但是,它似乎不起作用。

func (twoSeconds) {
    // build error: "twoSeconds" undefined
}(time.Second * 2)
Run Code Online (Sandbox Code Playgroud)

所以我必须这样做:

func () {
    twoSeconds := time.Second * 2
}()
Run Code Online (Sandbox Code Playgroud)

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

abh*_*ink 8

Go 中的函数参数需要类型。因此,请执行以下操作:

func(twoSeconds time.Duration) {
    // use twoSeconds
}(time.Second * 2)
Run Code Online (Sandbox Code Playgroud)