Rumah > pembangunan bahagian belakang > Golang > Mengapa Kod My Go Menghasilkan Ralat 'tidak boleh menggunakan fungsi (jenis func()) sebagai hujah jenis' Semasa Merangkai Perkhidmatan dengan Perpustakaan asl?

Mengapa Kod My Go Menghasilkan Ralat 'tidak boleh menggunakan fungsi (jenis func()) sebagai hujah jenis' Semasa Merangkai Perkhidmatan dengan Perpustakaan asl?

Susan Sarandon
Lepaskan: 2024-12-17 09:01:25
asal
549 orang telah melayarinya

Why Does My Go Code Produce a

"tidak boleh menggunakan fungsi (jenis func()) sebagai jenis dalam hujah"

Kod Go ini bertujuan untuk menunjukkan perkhidmatan rantaian dengan menggunakan pelbagai fungsi seperti menggunakan mesej, menerbitkan mesej dan membalas mesej. Kod ini menggunakan perpustakaan asl untuk mengendalikan operasi pemesejan.

Apabila cuba melaksanakan kod, mesej ralat ditemui, menunjukkan bahawa fungsi UpperCaseHandler dan RepeatHandler tidak boleh digunakan sebagai argumen jenis asl.MessageHandler dalam ConsumeFunc kaedah perkhidmatan UpperCaser dan Repeater, masing-masing.

Untuk menyelesaikan isu ini, adalah perlu untuk memastikan bahawa tandatangan fungsi sepadan dengan format yang dijangkakan. Jenis asl.MessageHandler menjangkakan fungsi yang mengambil busboy.MessageDelivery sebagai hujah dan mengembalikan antara muka{} dan ralat.

type MessageHandler func(busboy.MessageDelivery) (interface{}, error)
Salin selepas log masuk

Fungsi UpperCaseHandler dan RepeatHandler dalam kod anda tidak mematuhi jangkaan ini tandatangan. Mereka kekurangan nilai pulangan ralat. Untuk membetulkannya, ubah suai fungsi seperti berikut:

func UpperCaseHandler(md busboy.MessageDelivery) (interface{}, error) {
     s.Reply(MessageTest{strings.ToUpper(md.Message.(string))}, md.Delivery)
     return nil, nil
}

func RepeatHandler(md busboy.MessageDelivery) (interface{}, error) {
     s.Reply(MessageTest{strings.Repeat(md.Message.(string), 5)}, md.Delivery)
     return nil, nil
}
Salin selepas log masuk

Dengan menambahkan nilai pulangan ralat dan memastikan padanan yang betul dengan tandatangan asl.MessageHandler, kod tersebut harus dilaksanakan tanpa menghadapi ralat yang disebutkan di atas.

Atas ialah kandungan terperinci Mengapa Kod My Go Menghasilkan Ralat 'tidak boleh menggunakan fungsi (jenis func()) sebagai hujah jenis' Semasa Merangkai Perkhidmatan dengan Perpustakaan asl?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan