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 ?

Pourquoi My Go Code Produce « ne peut-il pas utiliser la fonction comme argument de type » et comment puis-je y remédier ?

DDD
Libérer: 2024-12-14 07:48:13
original
353 Les gens l'ont consulté

Why Does My Go Code Produce

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal