> 백엔드 개발 > Golang > Go에서 유형 별칭으로 변환할 때 유형 어설션이 실패하는 이유는 무엇입니까?

Go에서 유형 별칭으로 변환할 때 유형 어설션이 실패하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-22 20:59:13
원래의
374명이 탐색했습니다.

Why Do Type Assertions Fail When Casting to Type Aliases in Go?

Go에서 유형 별칭으로 캐스팅

Go에서 유형 별칭으로 캐스팅할 때 캐스팅 대신 유형 어설션이 사용됩니다. 그러나 유형 어설션의 동작은 유형 변환의 동작과 다릅니다.

유형 변환

값이 다른 유형의 변수에 저장되면 유형 변환이 자동으로 발생합니다. . 예를 들어, float64 변수에 int를 할당하면 유형 변환이 발생합니다.

유형 어설션

유형 어설션은 인터페이스{} 변수에 값이 저장되어 있는지 명시적으로 확인합니다. 특정 유형입니다. a.(T) 형식을 취합니다. 여기서 a는 변수이고 T는 대상 유형입니다.

유형 별칭으로의 캐스팅 문제

에 표시된 대로 제공된 플레이그라운드 스니펫에서 인터페이스{} 변수를 유형 별칭(somethingFuncy)으로 캐스팅하려고 하면 패닉이 발생합니다. 이는 유형 주장이 대상 유형과 동일한 값의 동적 유형을 요구하기 때문입니다.

설명

Go에서 유형 ID는 두 가지 명명된 유형을 나타냅니다. 동일한 유형 이름과 동일한 TypeSpec에서 유래합니다. 유형 별칭은 실제로 이름이 지정된 유형이므로 동일한 것으로 간주되려면 정확히 동일한 유형 이름과 선언이 있어야 합니다.

결론

유형을 사용하여 Go에서 유형 별칭으로 캐스팅 별칭 유형이 대상 유형과 동일해야 하기 때문에 어설션은 불가능합니다. 정확히 동일한 이름의 유형만 어설션될 수 있습니다.

위 내용은 Go에서 유형 별칭으로 변환할 때 유형 어설션이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿