본문 바로가기

Development/Golang

(3)
[Effective Go] functions Multiple return values Golang의 특징 중 하나는 function과 method가 여러 값을 return시킨다는 것이다. os 패키지의 Write method의 형식은 아래와 같다. func (file *File) Write(b []byte) (n int, err error) 위 method에서 반환되는 값은 작성된 bytes 수(n)와, n != len(b) 일 때 non-nil 상태의 error를 반환한다. Named result parameters return 또는 해당 function 내 결과값은 named 될 수 있다. 또한 일반적인 변수로도 사용된다. named 되었을 때, 해당 타입에 따라 초기화가 수행된다. (int 라면 0) function에서 return이 수행되는..
[Effective Go] Control Structures Golang에서의 제어구문(Control Structures)은 C와 굉장히 밀접하면서도, 다르다. do, while 반복문은 사용하지 않고, for 만을 사용한다. switch는 좀 더 유연히 사용된다. switch를 포함해 select와 같은 multiway communications mulitplexer를 제공하기도 한다. If Golang에서 if 는 아래와 같이 사용된다. if x > 0 { return y } if 와 switch 에서 지역 변수에 대한 초기화 구문을 허용한다. if err := file.Chmod(0644); err != nil { log.Print(err) return err } Go Libraries에서, if 구문이 다음의 명령문(코드)로 수행되지 않게 사용하는 스타일을..
[Effective Go] Names Naming은 다른 언어와 같이 Golang에서도 중요한 의미를 가진다. 패키지 외부로 공개하기 위해서는 First Character는 Upper case로 되어야 한다.(JAVA의 Public과 비슷한 개념) Package names 패키지를 import 하려고할 때, 패키지명은 해당 컨텐츠의 접근자가 된다. 예를 들어 아래의 구문은 "bytes.Buffer"를 가져올 때 사용될 수 있다. import "bytes" 패키지명은 source directory명을 base name로 가진다. 예를 들어 원하는 패키지가 src/encoding/base64 라면 encoding/base64로 import할 수 있다. import "encoding/base64" 패키지를 import 할 때, 패키지는 해당 컨텐..