题目描述
如何优雅的在 Go 语言中解决被除数为零?
题目来源及自己的思路
如果在 Go 语言中,被除数为零,假设出现了下面的代码:
package main
import "fmt"
func main() {
fmt.Println(1 / 0)
}
运行的话,会得到一个 invalid operation: division by zero
的错误,想请教大佬们,目前最直观能想到的一个方式就是捕获,但是 Go 语言又没有 try...catch 语句,所以赶来请问各位大佬,如何优雅的在 Go 语言中解决被除数为零?
但是如果是浮点数的除法,运行下面的代码,不会出错:
package main
import "fmt"
func main() {
foo := -0.0
fmt.Println(1.0 / foo)
}
这又是为什么呢?
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
整数除法,可以除之前判断一下除数是不是零。
浮点除法,除数为零会得到 Inf 或者 Nan ,并不会 panic 。