¿Cómo usar puntos suspensivos (…) en Golang?

Los tres puntos ( ) en Golang se denominan puntos suspensivos en Golang, que se utilizan en la función variádica . La función que llamó con el número variable de argumentos se conoce como función variádica. O, en otras palabras, un usuario puede pasar cero o más argumentos en la función variádica. fmt.Printf es el ejemplo de la función variádica, requiere un argumento fijo al principio, después de eso puede aceptar cualquier cantidad de argumentos.

El último parámetro de la función variádica siempre usa los puntos suspensivos. Significa que puede aceptar cualquier número de argumentos.

Ejemplo 1:

Go

// Golang program to show
// how to use Ellipsis (…)
package main
  
import "fmt"
  
func main() {
    sayHello()
    sayHello("Rahul")
    sayHello("Mohit", "Rahul", "Rohit", "Johny")
}
  
// using Ellipsis
func sayHello(names ...string) {
    for _, n := range names {
        fmt.Printf("Hello %s\n", n)
    }
}

Producción: 

Hello Rahul
Hello Mohit
Hello Rahul
Hello Rohit
Hello Johny

Ejemplo 2:

Go

// Golang program to show
// how to use Ellipsis (…)
package main
 
import (
    "fmt"
)
 
// using a variadic function
func find(num int, nums ...int) {
    fmt.Printf("type of nums is %T\n", nums)
    found := false
    for i, v := range nums {
        if v == num {
            fmt.Println(num, "found at index", i, "in", nums)
            found = true
        }
    }
    if !found {
        fmt.Println(num, "not found in ", nums)
    }
    fmt.Printf("\n")
}
func main() {
 
    // calling the function with
    // variable number of arguments
    find(89, 89, 90, 95)
    find(45, 56, 67, 45, 90, 109)
    find(78, 38, 56, 98)
    find(87)
}

Producción: 

type of nums is []int
89 found at index 0 in [89 90 95]

type of nums is []int
45 found at index 2 in [56 67 45 90 109]

type of nums is []int
78 not found in  [38 56 98]

type of nums is []int
87 not found in  []

Publicación traducida automáticamente

Artículo escrito por shivanisinghss2110 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *