我有一个 struct .我想清除所有的字段except一些公共字段,例如Name
、Gender
,如何通过方法实现该功能?
In my real code, I have many fields in the struct, so reset those sensitive fields manually is not my option.个
type Agent struct {
Name string
Gender string
Secret1 string
Secret2 string
}
func (a *Agent) HideSecret() {
fmt.Println("Hidding secret...")
new := &Agent{
Name: a.Name,
Gender: a.Gender,
}
a = new
}
我try 了*
和&
的几种组合,但似乎不起作用...
请帮帮忙.
James := Agent{
Name: "James Bond",
Gender: "M",
Secret1: "1234",
Secret2: "abcd",
}
fmt.Printf("[Before] Secret: %s, %s\n", James.Secret1, James.Secret2)
James.HideSecret()
fmt.Printf("[After] Secret: %s, %s\n", James.Secret1, James.Secret2) // not working
golang playground 在这里:https://go.dev/play/p/ukJf2Fa0fPI