"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo descomprimir elementos de una matriz directamente en variables en Go?

¿Cómo puedo descomprimir elementos de una matriz directamente en variables en Go?

Publicado el 2024-11-15
Navegar:631

How Can I Unpack Array Elements Directly into Variables in Go?

Descomprimir elementos de matriz en Go

Go carece de la sintaxis conveniente para descomprimir elementos de matriz directamente en variables que se encuentra en Python. Si bien el enfoque inicial del interrogador que utiliza una variable intermedia funciona, puede generar código desordenado, especialmente en escenarios complejos.

Múltiples valores de retorno

Para solucionar este problema, se recomienda La solución es crear una función que devuelva múltiples valores. Por ejemplo, para dividir una cadena y descomprimir los resultados en dos variables, se puede usar una función como esta:

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}

Con esta función, se puede utilizar el siguiente código para descomprimir la cadena dividida:

name, link := splitLink("foo\thttps://bar", "\t")

Argumentos de puntero variable

Otro enfoque es utilizar argumentos de puntero variable, que permiten pasar múltiples variables de puntero a una función y asignó los valores de una matriz. Así es como funciona:

func unpack(s []string, vars... *string) {
    for i, str := range s {
        *vars[i] = str
    }
}

Para descomprimir una matriz, se puede utilizar el siguiente código:

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)

Este enfoque permite descomprimir matrices de cualquier tamaño, pero requiere una declaración explícita de las variables. y algunos desarrolladores lo consideran menos legible.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3