flutter - 为什么除以零不会在 Dart 中崩溃?
问题描述
我认为以下代码应该崩溃,因为我正在执行整数除以零:
int n = 42;
eatCake(n / 0);
为什么除以零不会使我的应用程序崩溃?
解决方案
这里的关键n / 0
是不是整数除法。
Dart 自动执行double
除法,double
类型为double.infinity
常量。这意味着print(n / 0)
将产生Infinity
.
此外,double.infinity
实际上定义为1.0 / 0.0
。
如果您改用整数除法,您将收到IntegerDivisionByZeroException
:
print(n ~/ 0); // <- IntegerDivisionByZeroException
推荐阅读
- python - 我仍然收到错误 ImportError: No module named requests 在使用 pip3 安装请求后
- php - 从 PHP 中的字符串访问“复杂”对象属性
- javascript - Javascript 输入 UTC 字符串
- python - 由于命名空间为空,Python XPath lxml 无法读取 SVG 路径元素?
- c - 浮点函数总是返回 0.000000
- laravel - Laravel 分页在第一页后不起作用
- python-3.x - 关于使用 pydrive 列出所有文件
- java - Spring bean 销毁上的 System.exit() 是否有效?
- c++ - 代码块自动缩进突然停止工作(Windows 10)
- r - 使用 lapply 标准化 ts() 函数