golang 은 잘모르는게 많이 정해져있나보다.
전역변수 같은걸 사용하려고 이것저것 하다 한가지 실수를 했는데 그게 대소문자구문이였다.
전역변수만 모아두려고 myglobal.go 파일을 만들었다.
// myglobal.go 파일
package myglobal
//var urlShm = "UrlShm"; // 소문자는 안됨
var UrlShm = "UrlShm";
사용하기위한 main.go
// main.go 파일
package main
import (
"fmt"
"./myglobal"
)
func main() {
fmt.Println(myglobal.UrlShm )
}
그리고 다른 방식의 초기화 방법도 있다.
package myglobal
import (
"fmt"
)
var UrlShm string; // 여기서 초기화 안해도
func init() {
UrlShm = "UrlShm2" // 여기서 초기화 하면 된다.
}
init() 은 임포트할때 자동 호출 되는거 같다.
안보이는 룰로 혼돈에 빠트리는 golang ...
좋은건 알겠는데 쓸때마다 막힌다.