Go에서 인터페이스를 반환 유형으로 구현하려고 하면 오류가 발생할 수 있습니다. 인터페이스이기도 한 반환 유형입니다. 이 질문은 이 문제를 자세히 조사하여 오류를 해결하는 솔루션을 제공합니다.
제공된 코드는 인터페이스 IB를 반환할 것으로 예상되는 FB() 메서드가 있는 인터페이스 IA를 보여줍니다. 그러나 구조체 A에서 FB를 구현하면 IB 대신 구체적인 유형 *B가 반환됩니다.
이 오류를 수정하려면 구조체 A에서 FB의 반환 유형을 *B 대신 IB로 수정하면 됩니다.
이러한 변경은 A가 IA 인터페이스를 올바르게 구현하고 오류를 해결하도록 보장합니다.
또한 질문은 별도의 패키지에서 인터페이스를 정의하는 방법에 대해서도 묻습니다. 이 접근 방식은 Go에서 가능하므로 다양한 패키지에서 인터페이스를 공유할 수 있습니다. 그러나 구현이 다른 패키지에 있는 경우 구현에서 정규화된 인터페이스 이름을 사용해야 합니다.
예를 들어 IA와 IB가 foo 패키지에 정의되어 있고 구현이 bar 패키지에 있는 경우, bar 패키지의 선언은 다음과 같습니다.
bar의 구현은 다음과 같습니다.
이 조정을 통해 FB의 반환 유형이 패키지에 지정된 예상 유형과 일치하는지 확인합니다. 인터페이스가 정의된 패키지에 관계없이 IA 인터페이스.
위 내용은 Go에서 인터페이스를 반환 유형으로 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!