¿Cómo imprimir la porción de punteros para obtener los valores en lugar de su dirección sin iteración en marcha?

Este tipo de salida se requiere para fines de depuración. Para obtener el valor real de una porción de punteros, cada vez que se requiere una iteración.

¿Hay alguna forma de que podamos tener directamente el valor en lugar de la dirección de cada elemento presente en el segmento usando fmt.printf () simple?

Aquí hay un fragmento de código:https: //play.golang.org/p/bQ5vWTlKZm

package main

import (
    "fmt"
)

type user struct {
    userID int
    name   string
    email  string
}

func main() {
    var users []*user
    addUsers(users)
}

func addUsers(users []*user) {
    users = append(users, &user{userID: 1, name: "cooluser1", email: "[email protected]"})
    users = append(users, &user{userID: 2, name: "cooluser2", email: "[email protected]"})
    printUsers(users)
    printEachUser(users)

}

func printUsers(users []*user) {
    fmt.Printf("users at slice %v \n", users)
}

func printEachUser(users []*user) {
    for index, u := range users {
        fmt.Printf("user at user[%d] is : %v \n", index, *u)
    }
}

En el código anterior, si imprimo el segmento directamente por fmt.printf, obtengo solo la dirección de los valores en lugar del valor real en sí.

salida:users at slice [0x442260 0x442280]

Para leer siempre los valores, tengo que llamar afunc me gustaprintEachUser para iterar el segmento y obtener el valor apropiado.

salida:user at user[0] is : {1 cooluser1 [email protected]} user at user[1] is : {2 cooluser2 [email protected]}

Hay alguna forma, podemos leer los valores dentro del segmento de punteros usandofmt.printf y obtener valor directamente como a continuación?

users at slice [&{1 cooluser1 [email protected]} , &{2 cooluser2 [email protected]}]

Respuestas a la pregunta(3)

Su respuesta a la pregunta