亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用結構的方法清除某些字段以外的結構值

如何使用結構的方法清除某些字段以外的結構值

Go
胡子哥哥 2023-02-21 13:00:26
我有一個結構。我想清除除一些公共字段以外的所有字段,例如Name, Gender,如何通過方法實現功能?在我的真實代碼中,我在結構中有很多字段,所以手動重置這些敏感字段不是我的選擇。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}我嘗試了一些*和的組合&,但似乎不起作用......請幫忙。    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 workinggolang 操場在這里:https ://go.dev/play/p/ukJf2Fa0fPI
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

接收器是一個指針。您必須更新指針指向的對象:


func (a *Agent) HideSecret() {

    fmt.Println("Hidding secret...")

    cleaned := Agent{

        Name:   a.Name,

        Gender: a.Gender,

    }

    *a=cleaned

}


查看完整回答
反對 回復 2023-02-21
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

如果您只想清除字段,這是一個簡單的解決方案。它節省了一些內存


func (a *Agent) HideSecret() {

   fmt.Println("Hidding secret...")

   a.Secret1 = ""

   a.Secret2 = ""

}


查看完整回答
反對 回復 2023-02-21
  • 2 回答
  • 0 關注
  • 84 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號