我习惯于用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)