go언어
글 수 53
2016.01.19 12:51:50 (*.39.166.169)
7232
이 글은 Effective Go를 일부 번역한 글입니다.
함수
이름 붙은 결과 매개 변수
Go 함수는 반환 또는 결과 매개 변수에 이름을 붙여 평범한 변수로 쓸 수 있다. 입력 매개 변수를 떠올리면 된다. 이름을 붙이면 함수를 시작할 때 각 형에 맞게 0 값으로 초기화한다. 함수가 인수 없이 return 문장을 실행하면, 현재 결과 매개 변수 값을 반환 값으로 사용한다.
이름 짓는 게 의무는 아니지만 코드를 더 짧고 명확하게 만들 수 있다. 이름이 곧 문서이기 때문이다. nextInt 결과에 이름을 붙이면 반환된 int가 뭔지 명확해진다.
func nextInt(b []byte, pos int) (value, nextPos int) {
결과에 이름을 지으면 초기화되고 반환을 꾸미지 않아도 되기 때문에 간단하면서도 명확해진다. io.ReadFull의 형태가 이를 잘 보여준다.
func ReadFull(r Reader, buf []byte) (n int, err error) { for len(buf) > 0 && err == nil { var nr int nr, err = r.Read(buf) n += nr buf = buf[nr:] } return }