동도리 개발 로그

GoLang 사용 법 본문

개발/Golang

GoLang 사용 법

동돌이 2019. 11. 25. 18:00
반응형

GoLang 을 사용하면서 주의사항 몇가지

 

1. go 설치 후 

go 를 설치 한다음 터미널에 go env 를 입력하여 go Path를 확인하자

$ go env 
GOARCH="amd64"
GOBIN=""
GOCACHE="/{User}/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/{User}/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="~~~"

위와 같이 나오게 되는데 

GOPATH 와 GOROOT를  확인해야한다. go get 으로 프로젝트를 받았는데 어디있는지 모르는 사태가 발생할 수 도 있고 go 버전도 안드로메다로 갈 수 있다. 

 

2. 세미콜론

go에는 세미콜론으로 구문종료를 하지만 실제 코드상에서는 세미콜론이 없다!!!!!! (?)

go에 적용되는 규칙에 따라 자동으로 세미콜론을 삽입 해주기에 규칙에 따라 코드 작성을 해야한다. 

 

ok 코드

if i < f() {
	g()
}

wrong 코드

if i < f() 
{
	g()
}

 

중괄호가 if 문 맨뒤에 있으면 규칙에 따라 세미콜론을 붙이지 않지만 

만약 다음 줄에 중괄호가 나오게되면 go는 문장의 끝으로 보고 세미콜론을 붙여 주기에 에러가 난다.

if, for, select 등 여러 문법에서 적용된다.

 

 

3. 변수 선언

go는 타입을 선언 할 수도, 생략 할 수도 있다

var x, y, z int = 1, 2, 3
var c, python, java = true, false, "no!"

func main() {
    fmt.Println(x, y, z, c, python, java)
}

x,y,z 는  타입 선언이 되어있고 c, ptyhon, java 는 타입이 선언 되지 않았지만 모두 정상 출력된다.

name,  car, money := "동도리", "laferrari",99999999999999

fmt.Println(name, car, money)

위의 코드와같이 := 를 이용하여 타입 선언 없이 변수 선언도 가능하다. 

 

 

4. err 리턴

go에서는 error타입을 이용해서 에러를 처리하게 된다. 에러가 아닌경우 nil 을 리턴한다.

func Open(name string) (*File, error)

func main(){
	files, err := Open(./user)
    	if err != nil{
    		fmt.Println("파일을 읽어오는데 실패 했다", err)
   	 	}
}

Open 함수를 사용하면서 리턴으로 파일과 error를 넘겨주는데 오류가 있으면 error에 err를 넘겨서 보냄.

 

 

반응형

'개발 > Golang' 카테고리의 다른 글

Import Cycle error  (1) 2019.11.25
고언어  (0) 2019.11.25