dart - 为什么 2.0(数字 2.0)同时是 double 和 int?
问题描述
我刚开始学习 Dart 并遇到了下面的代码
main(){
print(2.0 is int);
print(2.0 is double);
print(int is double);
}
它产生以下输出
true
true
false
我不确定为什么会生成上述输出。上面的输出表明所有整数都可以被视为双精度数。
我在这里遗漏了一些明显的东西吗?任何指针都会有所帮助。谢谢。
解决方案
只有在浏览器中运行代码才能得到这个结果。
浏览器不区分 int 和 double,只知道 double,因此 Dart 在编译为 JS 时也无法区分它们。
理论上这是可能的,但是使用自定义类型来维护整数属性的性能损失会非常高。
另请参阅https://webdev.dartlang.org/faq#q-how-are-integers-handled-when-compiled-to-javascript
推荐阅读
- java - 关于声明和分配实例字段构造函数的初学者问题
- r - 如何在 R 中的自举过程中每次都包含某些样本?
- python - 如何从目录中搜索特定的 zip 文件?
- javascript - 当新项目添加到 Framer Motion (React) 中的列表顶部时,列表项目的动画布局
- matlab - 在 MATLAB 中制作动画时如何修复帧大小错误
- jquery - 为什么我不能用我的 jQuery ion.rangeSlider 范围滑块更新我的第二个输入值?
- django - ProgrammingError: 函数 lower(bigint) 不存在 (Django, AWS RDS, PostgreSQL)
- spring - Quarkus spring Hibernate和多租户如何设置?
- python - 更改值但新值覆盖上一个值
- javascript - 命令处理程序中的异步