Go > Core Go Basics > Functions > Defining functions
Basic Function Definition in Go
This snippet demonstrates how to define a simple function in Go, including specifying parameters and return values. It covers the fundamental syntax and provides a clear example.
Basic Function Structure
This code defines a function named 'add' that takes two integer parameters, 'x' and 'y', and returns their sum as an integer. The 'func' keyword is used to declare the function. The data types of the parameters and the return value are explicitly specified. The `main` function then calls the `add` function and prints the result. Note that Go requires explicit return statements; the function will return the result of the expression 'x + y'.
package main
import "fmt"
// Function to add two integers and return the result
func add(x int, y int) int {
return x + y
}
func main() {
result := add(5, 3)
fmt.Println("The sum is:", result)
}
Concepts Behind the Snippet
In Go, functions are first-class citizens, meaning they can be passed as arguments to other functions, returned as values from other functions, and assigned to variables. This snippet demonstrates the basic syntax for declaring a function: the `func` keyword, the function name, the parameter list (with types), and the return type. Go also supports multiple return values, which can be useful for returning errors along with results. The function body is enclosed in curly braces `{}`.
Real-Life Use Case
Functions are the building blocks of any Go program. They encapsulate reusable logic and make code more modular and maintainable. For instance, in a web server, you might have functions to handle different HTTP requests, process data, or interact with a database. This basic 'add' function could be part of a larger calculation within a financial application or scientific simulation.
Best Practices
Interview Tip
Be prepared to explain the purpose of functions, the different ways to define them (with or without parameters and return values), and the importance of functions in code organization and reusability. Understand the difference between passing arguments by value and by reference (pointers) in Go functions.
When to Use Them
Use functions whenever you have a block of code that performs a specific task and might be reused in multiple places. Functions promote code reuse, improve readability, and make it easier to test and maintain your code.
Memory Footprint
The memory footprint of a function is relatively small. It primarily consists of the space required to store the function's parameters, local variables, and return address. The actual memory usage depends on the size of the data being processed within the function.
Alternatives
While functions are the standard way to encapsulate logic in Go, you can also use methods (functions associated with a specific type) to operate on data structures. Anonymous functions (closures) can also be used for creating small, self-contained blocks of code that can capture variables from their surrounding scope.
Pros
Cons
FAQ
-
What is the purpose of the `func` keyword?
The `func` keyword is used to declare a function in Go. -
What is the difference between a parameter and an argument?
A parameter is a variable defined in the function's signature, while an argument is the actual value passed to the function when it is called. -
What is a return value?
A return value is the value that a function sends back to the caller after it has finished executing.