エラー「関数を引数の型として使用できません」
提供された Go コードでは、関数を引数として渡そうとしています別の関数に接続しましたが、「関数 (type func()) を引数の型として使用できません」というエラーが発生します。このエラーは、渡そうとしている関数の型が引数の予期された型と一致しないことを示します。
この問題を解決するには、渡している関数のシグネチャが引数の予期された型と一致していることを確認してください。議論。あなたの場合、引数として Messagedelivery 構造体を受け取り、値とエラーを返す関数を渡しています。ただし、引数の予期される型は、MessageDeliver 構造体を引数として受け取り、インターフェイスを直接返す関数を予期します。
これを修正するには、関数を次のように変更します。
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 }
インターフェイスを直接返すように関数を変更すると、期待される引数の型と一致するようになり、エラーは解決されるはずです。
以上がGo コードで「引数の型として関数を使用できません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。