더북(TheBook)

빈 식별자

값을 두 개 이상 반환하는 함수를 사용할 때 반환 값 중 하나만 필요할 때가 있다. 반환 값 중 하나만 필요할 때는 사용하지 않을 값을 임시로 받아줄 공간이 필요하다. 이때 빈 식별자(_)(blank identifier)를 사용한다.

i, _ := myFunc2()

Go 컴파일러는 빈 식별자를 변수로 인식하지 않는다. 빈 식별자는 이전에 사용됐어도 := 로 값을 할당할 수 있다.

 

반환 값의 이름 지정

Go에서는 (반환값명 타입) 형태로 반환 값의 이름을 지정할 수 있다. 다음 코드를 살펴보자.

func myFunc() (num int) {
    ...
    num = getValue()
    return
}

반환 값의 이름을 지정하면 함수가 시작될 때 지정된 이름으로 변수가 생성된다. 함수가 종료될 때는 반환 값을 표기하지 않고 return 구문만으로 함수를 종료시킬 수 있다. 이때 반환 값의 이름으로 생성된 변수가 반환된다. 이 방식을 사용하면 코드가 훨씬 간결해지고 가독성이 높아진다. 반환 값의 이름으로 생성된 변수를 반환하지 않고 다른 값을 반환해야 할 때는 이를 무시하고 반환할 값을 반환해주면 된다.

반환 값의 이름과 반환 타입을 여러 개 표기할 때는 콤마로 구분한다.

func myFunc() (num int, err error) {
    ...
}

값을 여러 개 반환할 때는 반환 값의 타입만 표기하는 방식과 이름을 지정하여 표기하는 방식을 혼용해서 사용할 수 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.