2016-06-07 3 views
-1

У меня есть функция, как это:Вызов функции в Golang

var flagvar int 
func init() { 
    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") 
} 

Я хочу назвать его в func main():

func main(){ 
    init() 
} 

Но это не работает, и сказал мне init() не определен. В чем проблема?

+2

Просто переименуйте функцию init –

+1

Не нужно вызывать функцию 'init' в вашем случае –

+0

Почему downvote ??? – brest1007

ответ

5

Функция init является специальной функцией в Голанге. Он выполняется при первом загрузке файла, поэтому вам не нужно называть его напрямую.

Из официальной документации:

Наконец, каждый исходный файл может определить свою собственную niladic функции инициализации для настройки независимо от состояния требуется. (Фактически, каждый файл может иметь несколько функций init.) И, наконец, означает, наконец: init вызывается после того, как все объявления переменных в пакете оценили их инициализаторы, и они оцениваются только после того, как все импортированные пакеты были инициализированы.

+0

Хорошо, спасибо! – brest1007

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