English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Golang에서 이름 지정된 반환 매개변수는 일반적으로 이름 지정된 매개변수로 불립니다. Golang은 함수 식별자나 정의에서 함수의 반환 또는 결과 매개변수에 이름을 지정할 수 있도록 허용합니다. 다시 말해, 이는 함수 정의에서 반환 변수의 명시적인 이름 지정입니다. 기본적으로, return 문에서 변수 이름을 언급해야 하는 요구를 해결합니다.
이름 지정된 반환 매개변수나 이름 지정된 매개변수를 사용하여, 함수의 마지막 부분에서만 return 키워드를 사용하여 결과를 호출자에게 반환할 수 있습니다. 함수가 여러 값을 반환해야 할 때는 일반적으로 이 개념을 사용합니다.
따라서, 사용자에게 편안함을 주고 코드의 가독성을 높이기 위해 Golang은 이 기능을 제공합니다.
이름 지정된 결과나 반환 매개변수를 선언하려면, 함수 식별자의 반환 타입 부분을 사용만 하면 됩니다. 다음은 Golang에서 함수를 선언하는 일반 문법입니다.
이름 지정된 반환 매개변수가 없는 함수를 선언하는 문법:
func function_name(Parameter-list)(Return_type){ // 함수체..... }
여기서, Return_Type는 선택 사항으로, 함수가 반환하는 값의 타입을 포함합니다. 함수에서 Return_Type를 사용하면 함수에서 return 문을 사용해야 합니다.
이름 지정된 반환 매개변수를 사용하여 함수를 선언하는 문법:
func function_name(Parameter-list)(result_parameter1 data__type,result_parameter2 data_type,…。){ //함수체….. //반환 }
이(result_parameter1 data__type, result_parameter2 data_type, ....)은 이름 지정된 반환 매개변수 목록 및 타입입니다. n개의 이름 지정된 반환 매개변수를 선언할 수 있습니다.
예제:아래의 프로그램에서 func calculator(a, b int) (mul int, div int) 코드 행에는 이름 지정된 반환 매개변수가 포함되어 있습니다. 함수 마지막의 return 문장에는 어떤 매개변수도 포함되지 않습니다. Go 컴파일러가 자동으로 매개변수를 반환합니다.
package main import "fmt" // Main 메서드 func main() { //여기서 함수를 호출합니다 //함수는 두 가지 값을 반환합니다 m, d := calculator(105, 7) fmt.Println("105 x 7 = ", m) fmt.Println("105 / 7 = ", d) } // 이름 지정된 파라미터가 있는 함수 func calculator(a, b int) (mul int, div int) { //여기서는 간단한 대입만 가능합니다 //그리고 값을 초기화합니다 mul = a * b div = a / b //여기서 return 키워드가 있습니다 //아무런 결과 매개변수가 없습니다 return }
출력:
105 x 7 = 735 105 / 7 = 15
모든 이름 지정된 반환 매개변수의 타입이 공통적이거나 동일하다면, 공통 데이터 타입을 지정할 수 있습니다. 위의 예제와 비교하여 더 잘 이해할 수 있습니다.
//이름 지정된 파라미터가 있는 함수 func calculator(a, b int) (mul, div int) {
여기서는mul및div변수들은 모두 int 타입입니다. 따라서 유일한 데이터 타입을 가진 이름 지정된 매개변수를 선언할 수도 있습니다. 예를 들어 함수 변수(즉,a및b)
이름 지정된 반환 매개변수를 사용하면 코드의 가독성이 향상됩니다. 이유는 함수 이름을 읽으면 반환 매개변수를 알 수 있기 때문입니다.
이름 지정된 반환 매개변수를 사용한 후, return 문장은 일반적으로 "bare return".
기본적으로 Golang은 모든 이름 지정된 변수에 zero value를 할당합니다. 함수가 값을 변경하지 않으면 자동으로 zero value를 반환합니다.
사용할 경우단축 선언 연산자(:=)이름 지정된 반환 매개변수를 초기화하면 오류가 발생합니다. 이유는 Go 컴파일러가 이미 초기화했기 때문입니다. 따라서 간단한 대입 문법 (=)을 사용하여 이름 지정된 반환 매개변수에 값을 할당할 수 있습니다.
//이름 지정된 파라미터가 있는 함수 func calculator(a, b int) (mul int, div int) { //여기서는 오류를 발생시킵니다 //기본적으로 파라미터가 정의되어 있기 때문에 //함수 이름에 있을 때 mul := a * b div := a / b //여기서 return 키워드가 있습니다 //아무런 결과 매개변수가 없습니다 return }
이름 지정된 반환 매개변수나 바른 반환 문장은 짧은 함수 이름에만 적용됩니다. 더 긴 함수는 명시된 반환 매개변수(이름 지정된 반환 매개변수를 사용하지 않음)를 사용하여 코드의 가독성을 유지해야 합니다.
이름 지정된 반환 매개변수는 "bare return" 문장을 사용하여 반드시 사용해야 합니다.
관련 지식:Golang의 함수