[go] Go 언어에서 함수의 매개 변수와 반환 값

Go 언어는 간결하고 효율적인 프로그래밍을 위한 개발 언어로서, 함수의 매개 변수와 반환 값 처리에도 특별한 주의가 필요합니다. 이번 글에서는 Go 언어에서 함수의 매개 변수와 반환 값에 대해 알아보도록 하겠습니다.

함수의 매개 변수

Go 언어에서 함수의 매개 변수를 선언할 때에는 변수명 뒤에 변수의 타입을 명시합니다. 예를 들어, 다음과 같이 add 함수를 작성해보겠습니다.

func add(a int, b int) int {
    return a + b
}

위의 코드에서 add 함수는 ab라는 두 개의 int 타입 매개 변수를 가지고 있습니다. 이처럼 Go 언어에서는 매개 변수의 타입을 명시함으로써 코드의 가독성을 높일 수 있습니다.

더불어, Go 언어에서는 같은 타입의 매개 변수가 연속적으로 나열될 경우, 마지막 타입을 제외한 매개 변수들 앞에만 타입을 명시해줄 수도 있습니다. 예를 들어, 위의 add 함수는 다음과 같이 수정할 수 있습니다.

func add(a, b int) int {
    return a + b
}

함수의 반환 값

Go 언어에서 함수의 반환 값은 함수 시그니처에서 타입을 명시하여 선언합니다. 예를 들어, add 함수의 반환 값은 int 타입이므로 다음과 같이 선언할 수 있습니다.

func add(a, b int) int {
    return a + b
}

함수 내부에서는 return 키워드를 사용하여 해당 값을 반환할 수 있습니다.

또한, Go 언어에서는 여러 개의 값을 반환할 수도 있습니다. 이를 위해 함수 시그니처에서 반환 값의 타입을 여러 개 선언하고, 함수 내부에서 해당 값들을 쉼표로 구분하여 반환하면 됩니다. 다음 예제를 참고해보세요.

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("division by zero")
    }
    return a / b, nil
}

위의 예제에서 divide 함수는 ab라는 두 개의 float64 타입 매개 변수를 받고, float64error라는 두 개의 타입을 반환합니다. 함수 내부에서는 만약 b가 0인 경우 fmt.Errorf를 사용하여 에러를 반환하고, 그렇지 않은 경우 a / b의 결과와 nil을 반환합니다.

마치며

Go 언어에서 함수의 매개 변수와 반환 값은 간결하고 명확한 방식으로 다루어집니다. 매개 변수와 반환 값의 타입을 명시하고, 여러 개의 값을 반환할 수 있는 점이 Go 언어의 특징 중 하나입니다. 이를 잘 활용하여 효율적이고 가독성 있는 코드를 작성할 수 있도록 노력해봅시다.