Saya bermain-main dengan Go, dan menemukan kode menarik ini untuk fungsi abs dalam paket matematika:
http://golang.org/src/pkg/math/abs.go
14 func abs(x float64) float64 {
15 switch {
16 case x < 0:
17 return -x
18 case x == 0:
19 return 0 // return correctly abs(-0)
20 }
21 return x
22 }
Mengapa kita perlu memiliki case khusus x == 0? Apa yang akan terjadi jika saya menghapus baris 18 dan 19?
Standar titik-mengambang IEEE 754 memungkinkan nol yang ditandatangani . Nol negatif sama dengan nol positif, jadi tidak akan dicakup oleh
< 0
tes.sumber