Maison >développement back-end >Golang >Pourquoi My Go Code Produce « ne peut-il pas utiliser la fonction comme argument de type » et comment puis-je y remédier ?
Erreur "Impossible d'utiliser la fonction comme type d'argument"
Dans le code Go fourni, vous essayez de transmettre une fonction comme argument à une autre fonction, mais vous rencontrez l'erreur « impossible d'utiliser la fonction (type func()) comme argument de type ». Cette erreur indique que le type de la fonction que vous essayez de transmettre ne correspond pas au type attendu de l'argument.
Pour résoudre ce problème, assurez-vous que la signature de la fonction que vous transmettez correspond au type attendu de l'argument. l'argumentation. Dans votre cas, vous transmettez des fonctions qui prennent une structure MessageDelivery comme argument et renvoient une valeur et une erreur. Cependant, le type attendu de l'argument attend une fonction qui prend une structure MessageDelivery comme argument et renvoie directement une interface{}.
Pour rectifier cela, modifiez vos fonctions comme suit :
func UpperCaseHandler(md asl.MessageDelivery) (interface{}, error) { s.Reply(MessageTest{strings.ToUpper(md.Message.(string))}, md.Delivery) return nil, nil } func RepeatHandler(md asl.MessageDelivery) (interface{}, error) { s.Reply(MessageTest{strings.Repeat(md.Message.(string), 5)}, md.Delivery) return nil, nil }
En modifiant vos fonctions pour renvoyer directement une interface{}, elles correspondront désormais au type d'argument attendu et l'erreur devrait être résolue.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!