La diferencia entre t y * t

package main

import "fmt"

type TT struct {
    a int
    b float32
    c string
}

func (t *TT) String() string {
    return fmt.Sprintf("%+v", *t)
}

func main() {
    tt := &TT{3, 4, "5"}
    fmt.Printf(tt.String())
}

El código puede funcionar bien. Pero si cambio elString método como en el siguiente, causará bucle muerto. La diferencia es que el*t se reemplaza cont. ¿Por qué?

func (t *TT) String() string {
    return fmt.Sprintf("%+v", t)
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta