Go에서 Int64를 Int로 변환: 가이드
유형 변환은 프로그래밍에서 일반적인 작업이며 Go에서는 변환이 간단합니다. 두 정수 유형 사이. 정확하고 효율적인 변환을 위해서는 int와 int64의 차이점을 이해하는 것이 중요합니다.
과제
int64(64비트 정수) 및 int(32- 비트 정수) Go에서 개발자는 이 두 유형의 값을 비교해야 할 필요성에 직면할 수 있습니다. 그러나 int64를 int로 변환하는 것은 까다로울 수 있습니다. 직접 비교하면 오버플로나 언더플로로 인해 예상치 못한 결과가 발생할 수 있기 때문입니다.
예를 들어, 일반적인 실수는 다음과 같이 int64 값을 int로 직접 변환하는 것입니다. 제공된 코드 조각:
for a := 2; a < maxInt; a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
여기서 maxInt는 int64 값이고 루프 조건(a < maxInt)은 int32(a)를 int64와 비교하려고 시도합니다. 이는 잘못된 결과로 이어질 수 있습니다.
해결책
Go에서 int64 값을 int와 정확하게 비교하려면 int 유형을 int64로 변환하는 것이 올바른 접근 방식입니다. 이렇게 하면 두 값이 동일한 유형이 되어 오버플로 또는 언더플로의 위험이 제거됩니다.
for a := 2; a < int64(maxInt); a++ { if isPrime(a) { if base.N % a == 0 { base.Result = a } } }
a를 int64로 캐스팅하면 루프 조건이 int64 값을 다른 int64 값과 올바르게 비교하여 적절한 비교를 보장합니다. .
추가 참고 사항
이 유형 변환을 수행할 때 오버플로 또는 언더플로의 가능성을 고려하는 것이 중요합니다. 변환된 값이 대상 유형에 비해 너무 크면 오버플로가 발생하여 잘못된 값이 발생할 수 있습니다. 반대로 변환된 값이 너무 작으면 언더플로가 발생하여 값이 하한값으로 잘릴 수 있습니다.
위 내용은 Go에서 Int64를 Int로 안전하게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!