Pembahagian mengikut Sifar dalam Go: Ralat Pengkompil lwn. Amaran
Dalam Go, cuba membahagikan nombor titik terapung dengan sifar menghasilkan ralat pengkompil, seperti yang dilihat dalam contoh di bawah:
<code class="go">func main() { var y float64 = 0.0 var x float64 = 4.0 / y fmt.Println(x) }</code>
Output:
prog.go:9:22: division by zero
Ralat ini berlaku kerana pemalar berangka dalam Go adalah tepat dan tidak dipetakan terus ke mana-mana apungan IEEE754 menaip. Akibatnya, mereka tidak boleh menyimpan infiniti atau sifar negatif.
Menurut dokumentasi, "Pemalar berangka mewakili nilai tepat ketepatan sewenang-wenangnya dan tidak melimpah. Akibatnya, tiada pemalar yang menunjukkan sifar negatif IEEE-754 , nilai infiniti dan bukan-nombor."
Pilihan ini memberikan beberapa faedah, seperti mengurangkan limpahan dalam pemalar, seperti yang ditunjukkan di bawah:
<code class="go">var x float64 = 1e1000 / 1e999 // yes, this is 10</code>
Jika anda memerlukan nilai infiniti , anda boleh menggunakan kod berikut:
<code class="go">var x float64 = math.Inf(1)</code>
Atas ialah kandungan terperinci Mengapa Pembahagian oleh Zero in Go Menghasilkan Ralat Pengkompil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!