首頁  >  文章  >  後端開發  >  將 google Inject 與提供者函數的多重傳回連線

將 google Inject 與提供者函數的多重傳回連線

WBOY
WBOY轉載
2024-02-05 21:15:351056瀏覽

将 google Inject 与提供者函数的多重返回连线

問題內容

依照googlewire的例子,我們可以透過以下方式初始化event結構

訊息.go:

type message string

func newmessage() message {
    //tbd    
}

event.go

func newevent(g message ) event {
    return event{message : g}
}

type event struct {
    message message
}

func (e event) start() {
   fmt.println(msg)
}

我們可以透過線初始化:

func main() {
    e := initializeevent()
    e.start()
}
    
func initializeevent() event {
    wire.build(newevent, newmessage)
    return event{}
}

有沒有辦法讓 init 函數傳回多個值,但我們只需要一個回傳值來注入,例如:

func newmessage() (message,error ){
    //tbd
}

func NewMessage() (Message,Greeter) {
    //TBD
}

正確答案


要宣告具有多個傳回值的函數,需要將它們放在括號中:

func NewMessage() (Message, error) {
    return Message(“TBD”), nil
}

編輯:您提出的問題(是否可以從init 函數返回錯誤)將在wire 教程的下一部分中得到解答- https://github.com/google/wire/ tree/main/_tutorial#making-changes -帶線

#

以上是將 google Inject 與提供者函數的多重傳回連線的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除