Go 中的除以零:編譯器錯誤與警告
在Go 中,嘗試將浮點數除以零會導致編譯器錯誤,如下例所示:
<code class="go">func main() { var y float64 = 0.0 var x float64 = 4.0 / y fmt.Println(x) }</code>
輸出:
prog.go:9:22: division by zero
發生此錯誤是因為Go 中的數字常數是精確的,並且不直接映射到任何IEEE754 浮點數類型。因此,它們無法儲存無窮大或負零。
根據文檔,「數字常數表示任意精確度的精確值且不會溢位。因此,沒有常數表示IEEE-754 負零、無窮大和非數字值。」
此選擇提供了一些好處,例如減少常數溢出,如下所示:
<code class="go">var x float64 = 1e1000 / 1e999 // yes, this is 10</code>
如果您需要無窮大值,您可以使用以下程式碼:
<code class="go">var x float64 = math.Inf(1)</code>
以上是為什麼 Go 中除零會導致編譯器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!