"함수(func() 유형)를 인수의 유형으로 사용할 수 없습니다."
이 Go 코드는 다양한 활용을 통한 체이닝 서비스를 시연하는 것을 목표로 합니다. 메시지 소비, 메시지 게시, 메시지 회신과 같은 기능. 코드는 메시징 작업을 처리하기 위해 asl 라이브러리를 사용합니다.
코드를 실행하려고 하면 UpperCaseHandler 및 RepeatHandler 함수를 ConsumeFunc에서 asl.MessageHandler 유형의 인수로 사용할 수 없음을 나타내는 오류 메시지가 나타납니다. UpperCaser 및 Repeater 서비스의 메서드입니다.
이 문제를 해결하려면 함수 서명이 예상 형식과 일치하는지 확인해야 합니다. asl.MessageHandler 유형은 Busboy.MessageDelivery를 인수로 취하고 인터페이스{}와 오류를 반환하는 함수를 기대합니다.
type MessageHandler func(busboy.MessageDelivery) (interface{}, error)
코드의 UpperCaseHandler 및 RepeatHandler 함수가 이 예상을 따르지 않습니다. 서명. 오류 반환 값이 부족합니다. 이 문제를 해결하려면 다음과 같이 함수를 수정하세요.
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 }
오류 반환 값을 추가하고 asl.MessageHandler 서명과 적절하게 일치하도록 하면 앞서 언급한 오류가 발생하지 않고 코드가 실행되어야 합니다.
위 내용은 Asl 라이브러리와 서비스를 연결할 때 내 Go 코드에서 '인수 유형으로 함수(func() 유형)를 사용할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!