Go Return Values
Learn Go through interactive, bite-sized lessons. Build scalable applications with modern concurrency.
Start Go Journey →Return values are a fundamental concept in Go programming. They allow functions to send data back to the caller, enabling modular and reusable code.
Basic Syntax
In Go, functions can return zero or more values. The return type is specified after the function parameters:
func functionName(parameters) returnType {
// function body
return value
}
Single Return Value
For a single return value, simply declare the type and use the return keyword:
func add(a, b int) int {
return a + b
}
Multiple Return Values
Go supports returning multiple values from a function, a powerful feature for error handling and complex operations:
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
This example demonstrates how to return both a result and an error, a common pattern in Go.
Named Return Values
Go allows you to name return values in the function signature. This can improve code readability and simplify the return statement:
func rectangle(width, height float64) (area, perimeter float64) {
area = width * height
perimeter = 2 * (width + height)
return // naked return
}
Named return values are initialized to their zero values and can be directly used in the function body.
Best Practices
- Use multiple return values for error handling
- Keep the number of return values reasonable (usually 2-3 at most)
- Consider using named return values for complex functions
- Always handle errors returned by functions
Related Concepts
To deepen your understanding of Go functions and return values, explore these related topics:
- Go Function Declaration
- Go Multiple Return Values
- Go Named Return Values
- Go Error Handling Best Practices
Mastering return values is crucial for writing efficient and idiomatic Go code. Practice using different return patterns to enhance your Go programming skills.