반환값(리턴값)
11 함수
반환값(리턴값)

함수의 제일 기본적인 기능은 입력된 값의 연산 후 출력입니다. 예를 들어, 덧셈 기능을 하는 함수라면 3과 4가 입력됐을 때 7이라는 값이 반환되어야 하는 것입니다. 우리는 이전 강의들에서 Go언어에서 함수 자체의 기능과 입력되는 값인 매개변수에 관해 배웠습니다. 이번 강의는 최종적으로 반환되는 값인 '반환값'에 대한 것입니다.

다시 매개변수 이야기를 하겠습니다. 다들 아는 것처럼 함수를 선언할 때 매개변수를 굳이 사용하지 않아도 됩니다. 그리고 '가변 인자 함수'를 사용하면 고정된 개수의 매개변수를 전달하지 않아도 됩니다. 이처럼 Go언어는 다른 언어와 다른 반환값의 특징이 있습니다. 바로 Go언어에서는 복수개의 반환값을 반환할 수 있다는 것입니다. 이는 C언어에서 void 혹은 하나의 값만을 반환하는 것과 대조적입니다. 복수 반환값의 몇 가지 특징을 알아보겠습니다.

  • 반환값의 개수만큼 반환형을 명시해야 합니다. 2개 이상의 반환형을 입력할 때는 괄호(())안에 명시합니다.
  • 동일한 반환형이더라도 모두 명시해야합니다.((int, int, int)) 

굉장히 간단한 용법이기 때문에 아래 예시 코드를 바로 실행해보고 다른 특징을 알아보겠습니다.

실행 언어: go
실행 결과를 확인해보세요!

위 코드는 저번 강의에서 배운 가변 인자 함수에 슬라이스를 전달하는 것을 활용했습니다. 숫자를 모두 더한 값인 result와 몇개의 매개변수가 전달됐는지 확인하는 count가 반환됩니다.


Named Return Parameter


Named return parameter는 직역하면 '이름이 붙여진 반환 인자'입니다. 즉, 이름이 붙여진 반환 값입니다. 여러 개의 값을 반환할 때 괄호 안에 반환형을 모두 명시해야 한다고 했습니다. 그런데 반환 값이 많고 반환형이 다양하다면 가독성이 좋지 않을 수 있습니다. 따라서 Named return parameter는 반환형과 반환 값의 이름을 같이 명시하는 것을 말합니다. 코드 안에서 return 뒤에 명시하던 리턴 값들을 반환형 앞에 명시하는 것입니다. Named return parameter의 몇 가지 특징을 알아보겠습니다.

  • (반환값이름1 반환형1, 반환값이름2 반환형2, 반환값이름3 반환형3, ...) 형식으로 입력합니다.
  • "반환값이름 반환형" 자체가 변수 선언입니다. 따라서 함수 안에서 따로 선언할 필요가 없습니다. 만약 선언하면 에러가 발생합니다.
  • 'return'을 생략하면 안 됩니다. 반환 값이 있을 때는 반드시 return을 명시해야합니다.
  • 반환 값이 하나라도 반환값이름을 명시했다면 괄호 안에 써야합니다.

Named return parameter 형식을 활용한 아래 코드를 바로 실행해보세요.

실행 언어: go
실행 결과를 확인해보세요!

위 코드는 일부러 지금까지 배운 기억해야하는 용법을 섞었습니다. 유심히 살펴보면 어렵지 않습니다. 예시 코드에서 주의해야 할 점은 dessertList 함수 안에 inputFruit 함수를 심지어 뒤에 ... 용법까지 사용했습니다. 이는 함수 자체를 전달인자로 사용했다는 것입니다. 이렇게 무조건 함수의 반환값을 변수를 따로 선언해서 초기화할 필요는 없습니다. 필요에 따라 함수를 변수처럼 사용할 수 있습니다. 하지만 코드 가독성을 안 좋게 할 수 있는 요인이 될 수 있기 때문에 잘 사용해야 합니다.

질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.