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

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

王林
王林앞으로
2024-02-06 09:30:08937검색

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

질문 내용

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

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

으아악

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


정답


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

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

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

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

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

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제