빈 식별자
값을 두 개 이상 반환하는 함수를 사용할 때 반환 값 중 하나만 필요할 때가 있다. 반환 값 중 하나만 필요할 때는 사용하지 않을 값을 임시로 받아줄 공간이 필요하다. 이때 빈 식별자(_)(blank identifier)를 사용한다.
i, _ := myFunc2()
Go 컴파일러는 빈 식별자를 변수로 인식하지 않는다. 빈 식별자는 이전에 사용됐어도 := 로 값을 할당할 수 있다.
반환 값의 이름 지정
Go에서는 (반환값명 타입) 형태로 반환 값의 이름을 지정할 수 있다. 다음 코드를 살펴보자.
func myFunc() (num int) { ... num = getValue() return }
반환 값의 이름을 지정하면 함수가 시작될 때 지정된 이름으로 변수가 생성된다. 함수가 종료될 때는 반환 값을 표기하지 않고 return 구문만으로 함수를 종료시킬 수 있다. 이때 반환 값의 이름으로 생성된 변수가 반환된다. 이 방식을 사용하면 코드가 훨씬 간결해지고 가독성이 높아진다. 반환 값의 이름으로 생성된 변수를 반환하지 않고 다른 값을 반환해야 할 때는 이를 무시하고 반환할 값을 반환해주면 된다.
반환 값의 이름과 반환 타입을 여러 개 표기할 때는 콤마로 구분한다.
func myFunc() (num int, err error) { ... }
값을 여러 개 반환할 때는 반환 값의 타입만 표기하는 방식과 이름을 지정하여 표기하는 방식을 혼용해서 사용할 수 없다.