Golang/etc
go init()
csohb
2022. 4. 13. 10:24
728x90
반응형
프로젝트 하면서 배우게 된 사항들은 까먹지 않고 다시 정리하는 습관을 들이려한다.
첫번째.
init() 함수
- main을 호출함과 동시에 무조건 호출되는 함수
main에서 따로 선언하지 않아도 알아서 호출된다.
func init() {
fmt.Println("init func called..")
}
func main() {
fmt.Println("main func called..")
}
분명 main에서 따로 호출하지 않았지만 실행되는 동시에 함수가 호출된 것을 볼 수 있다.
그럼 이 함수를 어디에 사용하는가.
내가 하고 있는 프로젝트에서는 config파일 읽어올때 주로 쓴다.
func init() {
if len(os.Args) == 2 {
configFile = os.Args[1]
} else {
if filename, err := config.GetEnvConfigFile(EnvConfig, ServiceConfig); err != nil {
panic("config file is not found")
} else {
configFile = filename
}
}
}
다음 포스팅에서 쓰겠지만 이런식으로 main 실행전 config 파일을 불러올때 사용한다.
728x90
반응형