web-dev-qa-db-fra.com

comment modifier les champs struct dans golang

J'ai un exemple play.golang.org/p/Y1KX-t5Sj9 où je définis la méthode Modify () sur la structure User

type User struct {
  Name string
  Age int
}
func (u *User) Modify() {
  *u = User{Name: "Paul"}
}

dans le main (), je définis la structure littérale & User {Name: "Leto", Age: 11} puis j'appelle u.Modify () . Cela se traduit par l'impression ' Paul 0 ' J'aime que struct nom du champ est changé, mais quelle est la bonne façon garder Champ Age?

8
irom

Modifiez simplement le champ que vous souhaitez modifier:

func (u *User) Modify() {
  u.Name = "Paul"
}

Ceci est bien couvert dans la tournée Go que vous devez absolument lire, cela ne prend pas longtemps.

16
Adrian