> 백엔드 개발 > Golang > 암시적 유형에 대한 유형 반영은 어떻게 작동하나요?

암시적 유형에 대한 유형 반영은 어떻게 작동하나요?

王林
풀어 주다: 2024-02-06 09:30:08
앞으로
954명이 탐색했습니다.

암시적 유형에 대한 유형 반영은 어떻게 작동하나요?

질문 내용

내가 이해하는 한 go는 정적으로 유형이 지정되며 일반적으로 암시적 유형 변환을 수행하지 않습니다. 따라서 명시적인 유형 선언이 없는 상수는 처음 사용할 때 요구 사항이 적용됩니다.

아래 코드 조각에서 저는 nfloat64,因为这就是 math.sin 所期望的。但是当打印出反射类型时,我看到了 int를 원합니다.

으아악

여기서 무슨 일이 일어나고 있는 걸까요? n 实际上有隐式 int 类型吗?或者反射不会显示这样的实际类型情况?我不认为 math.sin는 명시적 유형을 지정하면 컴파일러에서 오류가 발생하기 때문에 인수를 유형 변환합니다.


정답


[형이 지정되지 않은 상수의 유형]은 처음 사용할 때의 요구사항을 기준으로 합니다.

여기서 틀린 부분이 있습니다. 각 용도에 따라 유형이 독립적으로 선택됩니다.

math.Sin에는 float64 인수가 필요하므로 컴파일러는 여기서 float64를 선택해야 합니다.

reflect.TypeOf는 인터페이스{} 인수를 취하므로 컴파일러는 숫자 유형을 자유롭게 선택할 수 있습니다(모두 빈 인터페이스를 구현하므로). 여기서는 기본 정수 유형인 int를 선택합니다.

위 내용은 암시적 유형에 대한 유형 반영은 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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