동도리 개발 로그
GoLang 사용 법 본문
반응형
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 |