Go에서 유형 별칭으로 캐스팅
Go에서 유형 별칭으로 캐스팅할 때 캐스팅 대신 유형 어설션이 사용됩니다. 그러나 유형 어설션의 동작은 유형 변환의 동작과 다릅니다.
유형 변환
값이 다른 유형의 변수에 저장되면 유형 변환이 자동으로 발생합니다. . 예를 들어, float64 변수에 int를 할당하면 유형 변환이 발생합니다.
유형 어설션
유형 어설션은 인터페이스{} 변수에 값이 저장되어 있는지 명시적으로 확인합니다. 특정 유형입니다. a.(T) 형식을 취합니다. 여기서 a는 변수이고 T는 대상 유형입니다.
유형 별칭으로의 캐스팅 문제
에 표시된 대로 제공된 플레이그라운드 스니펫에서 인터페이스{} 변수를 유형 별칭(somethingFuncy)으로 캐스팅하려고 하면 패닉이 발생합니다. 이는 유형 주장이 대상 유형과 동일한 값의 동적 유형을 요구하기 때문입니다.
설명
Go에서 유형 ID는 두 가지 명명된 유형을 나타냅니다. 동일한 유형 이름과 동일한 TypeSpec에서 유래합니다. 유형 별칭은 실제로 이름이 지정된 유형이므로 동일한 것으로 간주되려면 정확히 동일한 유형 이름과 선언이 있어야 합니다.
결론
유형을 사용하여 Go에서 유형 별칭으로 캐스팅 별칭 유형이 대상 유형과 동일해야 하기 때문에 어설션은 불가능합니다. 정확히 동일한 이름의 유형만 어설션될 수 있습니다.
위 내용은 Go에서 유형 별칭으로 변환할 때 유형 어설션이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!