第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

指針引用未存儲在我的 go 程序中的結構中

指針引用未存儲在我的 go 程序中的結構中

Go
慕尼黑的夜晚無繁華 2023-05-04 17:36:57
我是 go-lang 的新手,我試圖弄清楚如何正確使用結構和依賴注入。我有點卡住了,因為我無法正確存儲對另一個結構的引用。這是我生成 CommandController 的方法。存在對 iris.Application 的有效引用。func ProvideCommandController(application *iris.Application, commandRepository command.CommandRepository) (*interfaces.CommandController, error) {commandController := interfaces.CommandController{}commandController.Init(application, commandRepository)commandController.Start()return &commandController, nil}該結構如下所示:type CommandController struct {    commandRepository command.CommandRepository    app   *iris.Application}func (c CommandController) Init(app *iris.Application, repository command.CommandRepository) {    c.app = app    c.commandRepository = repository}func (c CommandController) Start() {    c.app.Get("/command", c.readAll)    c.app.Get("/command/{id:string}/execute", c.executeCommand)    c.app.Run(iris.Addr(":8080"))}當ProvideCommandController函數被執(zhí)行時,我可以調試并觀察到所有引用看起來都很好。不幸的是,commandController.Start()由于c.app為零而失敗。我錯過了什么理解?不知何故,存儲的引用在 Init 和 Start 函數調用之間被刪除。提前致謝 :)
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

改變

func (c CommandController) Init(app *iris.Application, repository command.CommandRepository)

func (c *CommandController) Init(app *iris.Application, repository command.CommandRepository)

由于在您的版本中按值Init接收,因此它所做的任何更改都不會出現在方法之外。ccInit


查看完整回答
反對 回復 2023-05-04
  • 1 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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