>  기사  >  백엔드 개발  >  Go에서 메소드 존재 여부를 어떻게 확인할 수 있나요?

Go에서 메소드 존재 여부를 어떻게 확인할 수 있나요?

DDD
DDD원래의
2024-11-12 16:29:01279검색

How Can I Determine Method Existence in Go?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.