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
Susan Sarandonasal
2024-12-17 09:01:25588semak imbas

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)

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
}

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!

Kenyataan:
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