과제:
big.Int 값이 다음과 같은지 확인하는 코드 최적화 같음 0.
해결책:
효율성을 강조하며, 0으로 초기화된 인스턴스와 비교하는 것보다 big.Int의 바이너리 표현을 직접 확인하는 것이 좋습니다.
big.Int는 Int.Bits()를 통해 원시 바이트 표현에 대한 액세스를 제공합니다. 이 노출된 슬라이스는 기본 배열에 대한 참조를 유지하여 비용이 많이 드는 복사본을 방지합니다.
0에 대한 테스트:
문서에서는 big.Int 0 값이 0과 같다고 지정합니다. 따라서 빈 Bits() 슬라이스는 0 값을 나타냅니다. 왜냐하면 nil은 슬라이스의 0 값이기 때문입니다. 이 검사는 기존 비교보다 빠릅니다.
if len(i1.Bits()) == 0 { // i1 is 0 }
또는 Int.BitLen()을 사용하여 0의 비트 길이가 0인지 확인할 수 있습니다.
if i1.BitLen() == 0 { // i1 is 0 }
벤치마크:
비교 시점은 상당한 성과를 보여줍니다. 이득:
BenchmarkCompare: 13.3 ns/op BenchmarkBits: 0.656 ns/op BenchmarkBitLen: 1.11 ns/op
추가 참고:
big.Int 값이 1이면 테스트에 유사한 최적화를 적용할 수 있습니다. 더 복잡하기는 하지만 두 가지를 모두 확인해야 합니다. 비트 내용과 기호.
위 내용은 big.Int가 0인지 가장 효율적으로 확인할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!