목록개발/Golang (3)
동도리 개발 로그
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..
Go에서는 패키지간 상속을 금지 하고있어서 서로 참조 하게되면 에러가 나온다 혹시나 A -> B -> C -> A (-> 는 참조) 와 같이 프로그래밍이 되어있다면... 어휴.... 찾는데 오래걸렸던 기억이 이경우엔 다시 개발하는것을 추천 아래의 코드를 보자. child.go package child import "../parent" type Child struct { parent *parent.Parent } func (child *Child) PrintParentMessage() { child.parent.PrintMessage() } func NewChild(parent *parent.Parent) *Child { return &Child{parent: parent } } parent.go pack..
구글에서 개발된 프로그래밍 언어 GC(Garbage collection) 이 있으며 병행성 지원이 잘되는 컴파일 언어 개발자들은 C++가 복잡스러워서 대체가능한 언어를 만들기 위해 만들기 시작하였다고한다. 쓰면서 좋았던점 고에서 지원하는 go 루틴을 이용하면 쓰레드 사용이 엄청 쉽게 된다. 참고로 go 루틴은 경량 쓰레드 go 루틴끼리 채널을 통해서 상호간 통신 및 컨트롤이 가능하다. 필요없는 패키지를 go언어 자체가 컴파일 전에 에러를 내서 불 필요한 코드가 적어진다. OS별 바이너리를 생성하여 실행파일 한개만 실행 하면 된다. error를 리턴하여 처리 가능 하다 -> 에러 처리를 안하면 그냥 넘어가거나 프로그램이 종료된다 혹은 그냥 무시 가능 불편했던점 타입 상속이 없다. geth를 재 프로그래밍..