Las funciones variádicas en Go le permiten pasar una cantidad variable de argumentos a una función. Esta función es útil cuando no sabes de antemano cuántos argumentos pasarás. Una función variádica de Golang acepta múltiples argumentos del mismo tipo y puede llamarse con cualquier número de argumentos, incluido ninguno.

package main
import "fmt"
// Hàm Variadic tính tổng
func sum(nums ...int) int {
total := 0
for _, n := range nums {
total += n
}
return total
}
func main() {
fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
fmt.Println("Sum of 4, 5:", sum(4, 5))
fmt.Println("Sum of no numbers:", sum())
}
Resultado:
Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0
Sintaxis:
func functionName(parameters ...Type) ReturnType {
// Code
}
En la sintaxis anterior:
parameters ...Type
Indica que la función puede aceptar un número variable de argumentos de tipo Tipo.
- Puedes acceder a los argumentos de una función como una porción.
Cómo usar funciones inciertas en Golang
Uso de funciones variádicas
Al definir una función variádica, se especifica el tipo de argumento seguido de puntos suspensivos (...) como en el ejemplo anterior. Dentro de la función, estos argumentos pueden considerarse como una porción.
Llamar a una función variádica
Puede llamar a una función variádica con cualquier número de argumentos, incluido cero. Esta función trata los argumentos como una porción.
Por ejemplo:
package main
import "fmt"
func sum(nums ...int) int {
total := 0
for _, n := range nums {
total += n
}
return total
}
func main() {
fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
fmt.Println("Sum of 4, 5:", sum(4, 5))
fmt.Println("Sum of no numbers:", sum())
}
Resultado:
Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0
Función variádica con diferentes parámetros
También puedes combinar parámetros variádicos con parámetros regulares en una función. Los parámetros variádicos siempre deben ser el último parámetro.
Por ejemplo:
package main
import "fmt"
// Hàm Variadic tính tổng
func sum(nums ...int) int {
total := 0
for _, n := range nums {
total += n
}
return total
}
// Hàm với tham số thông thường và variadic
func greet(prefix string, nums ...int) {
fmt.Println(prefix)
for _, n := range nums {
fmt.Println("Number:", n)
}
}
func main() {
greet("Sum of numbers:", 1, 2, 3)
greet("Another sum:", 4, 5)
greet("No numbers sum:")
}
Resultado:
Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:
Limitaciones de las funciones variádicas
- Las funciones variádicas solo pueden tener un parámetro variádico y debe ser el último parámetro.
- No es posible tener varios parámetros variádicos en una única definición de función.