2016-10-17 2 views
0

Я привык к программированию в JavaScript, где я могу сделать следующее, чтобы передать аргумент в немедленно вызываемой функции выражение:Передача аргумента Go IIFE (после яваскрипта примера)

(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? И если это невозможно, почему бы и нет?

ответ

3

Аргументы аргумента в типах потребностей Go. Итак, сделайте следующее:

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

О, конечно, это очевидно сейчас, я не могу поверить, что я пропустил это! Спасибо за помощь в любом случае, поддержали и приняли. – user162097

Смежные вопросы