Rumah > pembangunan bahagian belakang > Golang > Kawat google Inject dengan beberapa pulangan fungsi pembekal

Kawat google Inject dengan beberapa pulangan fungsi pembekal

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-05 21:15:35
ke hadapan
1168 orang telah melayarinya

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

Kandungan soalan

Mengikuti contoh googlewire, kita boleh memulakan struktur acara dengan cara berikut

message.go:

type message string

func newmessage() message {
    //tbd    
}
Salin selepas log masuk

event.go

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

type event struct {
    message message
}

func (e event) start() {
   fmt.println(msg)
}
Salin selepas log masuk

Kita boleh mulakan melalui talian:

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

Adakah terdapat cara untuk menjadikan fungsi init mengembalikan berbilang nilai, tetapi kita hanya memerlukan satu nilai pulangan untuk menyuntik, sebagai contoh:

func newmessage() (message,error ){
    //tbd
}
Salin selepas log masuk

atau

func NewMessage() (Message,Greeter) {
    //TBD
}
Salin selepas log masuk


Jawapan betul


Untuk mengisytiharkan fungsi dengan berbilang nilai pulangan, anda perlu meletakkannya dalam kurungan:

func NewMessage() (Message, error) {
    return Message(“TBD”), nil
}
Salin selepas log masuk

EDIT: Soalan anda (adakah mungkin untuk mengembalikan ralat daripada fungsi init) akan dijawab dalam bahagian seterusnya tutorial wayar - https://github.com/google/wire/tree/main/_tutorial #membuat- perubahan - dengan garisan

Atas ialah kandungan terperinci Kawat google Inject dengan beberapa pulangan fungsi pembekal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan