挑戰:
優化檢查 big.Int值是否為的程式碼等於0.
解決方案:
強調效率,建議直接檢查big.Int 的二進位表示,而不是與零初始化的實例進行比較。
big.Int 透過 Int.Bits() 提供對其原始位元組表示的存取。這個公開的切片維護對底層數組的引用,避免了昂貴的複製。
檢定 0:
文件指定 big.Int 零值等於 0。因此,空的 Bits() 切片表示零值,因為 nil 是切片的零值。此檢查比傳統比較更快:
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 是否為零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!