본문 바로가기

프로그래밍

golang 전역변수 ? 다른 패키지의 변수 사용하기 (global variable)

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 ...

좋은건 알겠는데 쓸때마다 막힌다.