>백엔드 개발 >Golang >Go에서 값이 인터페이스를 구현하는지 어떻게 확인할 수 있나요?

Go에서 값이 인터페이스를 구현하는지 어떻게 확인할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-30 20:29:17264검색

How Can I Check if a Value Implements an Interface in Go?

Go에서 인터페이스 구현 확인

Go에서 인터페이스를 사용하면 다양한 데이터 유형에 대한 공통 동작을 정의하는 방법을 제공합니다. 그러나 값이 특정 인터페이스를 구현하는지 확인하는 것은 까다로울 수 있습니다.

유형 어설션과 유형 스위치

값이 인터페이스를 구현하는지 확인하는 가장 일반적인 방법 유형 주장을 통해 이루어집니다.

_, ok := val.(Somether)

이 유형 주장은 val 값이 Somether 유형으로 변환될 수 있는지 확인합니다. 가능하다면 변환된 값을 _에 할당하고 ok를 true로 설정합니다. 그렇지 않으면 ok를 false로 설정합니다.

그러나 유형 어설션은 val이 인터페이스라고 가정하지만 항상 그렇지 않을 수도 있습니다. 명시적인 유형 검사를 위해 유형 전환 방법을 사용할 수 있습니다.

var _ Somether = (*MyType)(nil)

이 예에서는 Somether 유형의 명명되지 않은 변수를 선언하고 이를 MyType 유형의 nil 포인터와 동일하게 설정합니다. 이 구문을 사용하면 컴파일러는 MyType이 Somether를 구현하는지 확인하고 그렇지 않으면 컴파일 오류를 발생시킵니다.

알려진 유형의 단순성

val 유형이 알려지면 컴파일러는 Somether를 구현하는지 자동으로 확인합니다. 위에서 설명한 명시적 확인은 유형을 알 수 없는 경우에만 필요합니다.

위 내용은 Go에서 값이 인터페이스를 구현하는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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