为什么“零除”不会在Dart中崩溃?

时间:2019-11-02 17:24:05

标签: flutter dart

我认为以下代码应该崩溃,因为我正在执行被零除的整数:

int n = 42;
eatCake(n / 0);

为什么除以零不会使我的应用程序崩溃?

1 个答案:

答案 0 :(得分:4)

此处的关键是n / 0不是整数除

Dart自动执行double除法,而double类型具有double.infinity constant。这意味着print(n / 0)将产生Infinity
此外,double.infinity实际上定义为1.0 / 0.0

如果您改用整数除法,则会收到IntegerDivisionByZeroException

print(n ~/ 0); // <- IntegerDivisionByZeroException