Understanding Variadic Parameters in Go (Golang)

go functiongolanggo parametervariadic
Gerald VillorenteOctober 15, 20233 min read
Understanding Variadic Parameters in Go (Golang)

Go (Golang) is known for its simplicity and power in writing efficient and clean code. One of the features that contributes to this is the use of variadic parameters. In this blog post, we will explore variadic parameters in Go and provide real-world examples of how they can be employed.

What are Variadic Parameters?

Variadic parameters allow a Go function to accept an arbitrary number of arguments of a specific type. This flexibility makes your code more versatile, enabling you to create functions that work with different numbers of arguments.

In Go, variadic parameters are represented by three dots ... followed by the type of the parameter. Let's dive into some real examples to understand how variadic parameters work.

Example 1: Calculating the Sum of Numbers

Suppose you need a function that calculates the sum of a series of integers. With variadic parameters, you can create a function like this:

func sum(numbers ...int) int {
    result := 0
    for _, num := range numbers {
        result += num
    }
    return result
}

Now, you can call this function with any number of integer values, and it will return their sum:

total := sum(1, 2, 3, 4, 5)

The numbers parameter is a variadic parameter, allowing you to pass any number of integers to calculate their sum.

Example 2: Printing Messages

Variadic parameters are not limited to numerical values; they can work with strings too. Let's consider a function that prints messages with a custom prefix:

func printMessages(prefix string, messages ...string) {
    for _, message := range messages {
        fmt.Println(prefix, message)
    }
}

Now, you can call printMessages with a prefix and any number of messages:

printMessages("Info:", "This is an informational message.")
printMessages("Error:", "An error occurred.", "Please check the log.")

The messages parameter is a variadic string parameter, allowing you to pass multiple messages to be printed with the specified prefix.

Example 3: Finding the Maximum Value

Variadic parameters are handy for finding the maximum value among a series of integers:

func max(numbers ...int) int {
    if len(numbers) == 0 {
        return 0
    }
    max := numbers[0]
    for _, num := range numbers {
        if num > max {
            max = num
        }
    }
    return max
}

Calling the max function with any number of integer values will return the maximum value:

maximum := max(4, 9, 2, 7, 1)

The numbers parameter is variadic and can accept any number of integers.

Conclusion

Variadic parameters in Go provide a powerful tool for creating flexible functions that can handle varying numbers of arguments. They enable you to write clean and efficient code, making your programs more versatile and easier to work with. Whether you need to calculate sums, print messages, or find maximum values, variadic parameters can simplify your code and enhance its usability in a wide range of scenarios.

Related reading

scnr: Defensive Vulnerability Discovery That Never Exploits
security

scnr: Defensive Vulnerability Discovery That Never Exploits

October 13, 2026
devopsgolangopen-sourcescnr
AI-Powered PHP-FPM Analysis: Streamlining Troubleshooting with Golang and Gemini AI

AI-Powered PHP-FPM Analysis: Streamlining Troubleshooting with Golang and Gemini AI

July 8, 2025
devopsdevops toolgolangphp-fpm

Comments

Comments disabled — configure NEXT_PUBLIC_GISCUS_* env vars.