Go에서 메소드 존재 쿼리
Go에서는 Objective-C와 달리 객체에 특정 항목이 있는지 확인하는 명시적인 메커니즘이 없습니다. 방법. 그러나 이러한 요구를 해결하는 데는 여러 가지 접근 방식이 있습니다.
간단한 메소드 확인
관심 있는 메소드만으로 인터페이스를 정의하고 유형을 수행할 수 있습니다. 개체에 대한 어설션:
i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
또는:
i, ok = myInstance.(interface{ F() })
ok의 참 값은 메서드가 존재함을 나타냅니다.
고급 접근 방식: Reflect 패키지
reflect 패키지는 유형을 검사하는 보다 포괄적인 방법을 제공합니다.
st := reflect.TypeOf(myInstance) m, ok := st.MethodByName("F")
ok가 false이면 메서드가 존재하지 않습니다. 그렇지 않으면 m.F()를 사용하여 메서드를 호출할 수 있습니다.
위 내용은 Go에서 메소드 존재 여부를 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!