내가 이해하는 한 go는 정적으로 유형이 지정되며 일반적으로 암시적 유형 변환을 수행하지 않습니다. 따라서 명시적인 유형 선언이 없는 상수는 처음 사용할 때 요구 사항이 적용됩니다.
아래 코드 조각에서 저는 n
是 float64
,因为这就是 math.sin
所期望的。但是当打印出反射类型时,我看到了 int
를 원합니다.
여기서 무슨 일이 일어나고 있는 걸까요? n
实际上有隐式 int 类型吗?或者反射不会显示这样的实际类型情况?我不认为 math.sin
는 명시적 유형을 지정하면 컴파일러에서 오류가 발생하기 때문에 인수를 유형 변환합니다.
[형이 지정되지 않은 상수의 유형]은 처음 사용할 때의 요구사항을 기준으로 합니다.
여기서 틀린 부분이 있습니다. 각 용도에 따라 유형이 독립적으로 선택됩니다.
math.Sin에는 float64 인수가 필요하므로 컴파일러는 여기서 float64를 선택해야 합니다.
reflect.TypeOf는 인터페이스{} 인수를 취하므로 컴파일러는 숫자 유형을 자유롭게 선택할 수 있습니다(모두 빈 인터페이스를 구현하므로). 여기서는 기본 정수 유형인 int를 선택합니다.
위 내용은 암시적 유형에 대한 유형 반영은 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!