将参数传递给 Go IIFE(遵循 javascript 示例)
Passing argument to Go IIFE (following javascript example)
我习惯在 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?如果不可能,为什么不呢?
Go 中的函数参数需要类型。所以请执行以下操作:
func(twoSeconds time.Duration) {
// use twoSeconds
}(time.Second * 2)
我习惯在 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?如果不可能,为什么不呢?
Go 中的函数参数需要类型。所以请执行以下操作:
func(twoSeconds time.Duration) {
// use twoSeconds
}(time.Second * 2)