【发布时间】:2020-11-11 01:11:56
【问题描述】:
问题就在标题中:Dart语言中是否存在常量INT_MAX(整数的最大值)?
我不在乎它是什么,我只是想将它用作初始化常量,例如,在 List 中找到最小值。
我注意到有一个double.maxFinite,我可以使用它
int i = double.maxFinite.toInt();
但这对我来说似乎是错误的。还是这样?
【问题讨论】:
问题就在标题中:Dart语言中是否存在常量INT_MAX(整数的最大值)?
我不在乎它是什么,我只是想将它用作初始化常量,例如,在 List 中找到最小值。
我注意到有一个double.maxFinite,我可以使用它
int i = double.maxFinite.toInt();
但这对我来说似乎是错误的。还是这样?
【问题讨论】:
Dart 平台之间没有最大整数值。
在原生平台上,最大值为 0x7FFFFFFFFFFFFFFF (263-1)。没有为它提供常量。
在网络平台上,最大整数值为double.maxFinite。
如果我必须做一些需要初始最大值的事情(可能是找到列表的最小元素),我宁愿从第一个元素开始,然后输入一个空输入。
作为第二选择,我会使用num 作为累加器,并使用double.infinity 作为起始值。然后我会在最后检查并做一些有用的事情,如果该值仍然是无限的。
【讨论】:
2^53(又名“最大精确整数双精度”)、double.maxPositive 或 double.infinitt 作为网络上的最大整数值。所有这些都是ints(如果您检查is int - 它们本身等于.floor(),因此它们被视为整数。)
theIterable.reduce((a, b) { ... }),在第一次迭代中您将查看列表的两个元素,并返回新的候选者。不需要 MIN 或 MAX 值。