인터페이스 구현 확인 이해
Go 인터페이스로 작업할 때 값이 특정 인터페이스를 구현하는지 확인해야 하는 경우가 많습니다. 이러한 검증 기술을 이해하는 것은 어려울 수 있지만 이 문서의 목적은 프로세스를 명확히 하는 것입니다.
유형 캐스팅과 유형 어설션
val의 예시와 같은 유형 캐스팅 := MyType("hello")를 사용하면 다른 유형에 값을 할당할 수 있습니다. 그러나 유형 캐스팅만으로는 값이 인터페이스 요구 사항을 충족하는지 여부를 나타내지 않습니다.
반면 유형 주장은 값이 인터페이스를 준수하는지 확인합니다. _, ok := val.(Somether) 구문은 val 변수가 Somether 유형임을 확인하려고 시도합니다. val이 Somether를 구현하면 ok가 true가 됩니다. 그렇지 않으면 거짓이 됩니다.
명시적 유형 검사
명시적 유형 검사를 수행하려면 다음 구문을 사용할 수 있습니다.
var _ Somether = (*MyType)(nil)
이 표기법은 Somether 유형의 변수를 선언하고 MyType의 nil 인스턴스에 대한 포인터를 할당합니다. MyType이 Somether를 구현하지 않으면 이 코드는 컴파일에 실패하여 불일치를 나타냅니다.
Simpler Approach
대부분의 경우 인터페이스 구현을 수동으로 확인할 필요가 없습니다. 유형이 알려져 있습니다. Go 컴파일러는 컴파일 타임에 자동으로 이 검사를 수행합니다. 그러나 여전히 명시적인 확인이 필요한 경우 컴파일 오류 가능성을 방지할 수 있는 유형 어설션 방법이 선호됩니다.
위 내용은 Go에서 인터페이스 구현을 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!