This Go program demonstrates the use of variadic functions and the spread operator.
// Importing the "fmt" package, which provides functions for formatted I/O.
import "fmt"
// Function sum takes a variable number of integers as parameters using the ellipsis (...) syntax.
// It prints the input numbers and calculates their sum.
func sum(nums ...int) {
// Print the input numbers.
fmt.Print(nums, " ")
// Initialize a variable to store the sum.
total := 0
// Iterate over the input numbers and calculate the sum.
for _, num := range nums {
total += num
}
// Print the calculated sum.
fmt.Println(total)
}
// The main function, which serves as the entry point for the program.
func main() {
// Calling the sum function with two integer arguments (1 and 2).
sum(1, 2)
// Calling the sum function with three integer arguments (1, 2, and 3).
sum(1, 2, 3)
// Creating a slice of integers and passing it to the sum function using the spread operator (...).
nums := []int{1, 2, 3, 4}
sum(nums...)
}
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10
Now, let's break down the code and explain each part:
-
Function Declarations:
sum(nums ...int)
: This function takes a variable number of integers using the ellipsis (...) syntax. It prints the input numbers and calculates their sum.
-
Main Function:
-
main()
: This is the entry point of the program. -
sum(1, 2)
: Calls thesum
function with two integer arguments (1 and 2). -
sum(1, 2, 3)
: Calls thesum
function with three integer arguments (1, 2, and 3). -
nums := []int{1, 2, 3, 4}
: Creates a slice of integers. -
sum(nums...)
: Calls thesum
function with the elements of thenums
slice passed as individual arguments using the spread operator...
.
-