En Golang, una función que se puede llamar con una lista de argumentos variables se conoce como función variádica . Uno puede pasar cero o más argumentos en la función variádica. Si el último parámetro de una definición de función tiene el prefijo de puntos suspensivos…, entonces la función puede aceptar cualquier número de argumentos para ese parámetro.
Sintaxis de una función variádica:
func f(elem ...Type)
Aquí ...
el operador le dice al programa Golang que almacene todos los argumentos de Tipo en el parámetro elem. Después de eso, vaya a crear una variable elem del tipo []Tipo. Por lo tanto, todos los valores pasados se almacenan en un parámetro elem que es un segmento. También se puede pasar un segmento en el argumento en lugar de la lista de argumentos, ya que finalmente la función los convierte en un segmento.
Para obtener más información, puede consultar Funciones variadicas en Golang
Ventajas de usar una Función Variádica:
- Pasar un segmento en una función es muy fácil.
- Útil cuando se desconoce el número de parámetros.
- Aumenta la legibilidad del programa.
Veamos algunos de los ejemplos para usar funciones con lista de argumentos variables:
Ejemplo 1:
// Go program that uses a function // with variable argument list package main // Importing required packages import ( "fmt" ) // Variadic function to return // the sum of the numbers func add(num ...int) int { sum := 0 for j := range num { sum += j } return sum } func main() { fmt.Println("Sum =", add(1, 2, 3, 4, 5, 7, 8, 6, 5, 4)) }
Producción:
Sum = 45
Ejemplo 2: un segmento también se puede usar como una lista de argumentos.
// Go program that uses a function // with variable argument list // Using a slice as the argument list package main // importing required modules import ( "fmt" ) // Function to check if an element // is present in the list or not func check(x int, v ...int) { flag := false index := 0 for i, j := range v { if j == x { flag = true index = i } } if flag { fmt.Println("Element ", x, " found at index:", index) } else { fmt.Println("Element not present in the list") } } func main() { el := []int{1, 1, 2, 3, 4, 5, 6, 7, 8, 9} check(1, el...) check(10, el...) }
Producción:
Element 1 found at index: 1 Element not present in the list
Publicación traducida automáticamente
Artículo escrito por Hritika Rajput y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA