【问题标题】:Is there the equivalent of INT_MAX in dart? [duplicate]飞镖中有相当于 INT_MAX 的吗? [复制]
【发布时间】:2020-11-11 01:11:56
【问题描述】:

问题就在标题中:Dart语言中是否存在常量INT_MAX(整数的最大值)?

我不在乎它是什么,我只是想将它用作初始化常量,例如,在 List 中找到最小值。

我注意到有一个double.maxFinite,我可以使用它

int i = double.maxFinite.toInt();

但这对我来说似乎是错误的。还是这样?

【问题讨论】:

标签: dart integer constants


【解决方案1】:

Dart 平台之间没有最大整数值。

在原生平台上,最大值为 0x7FFFFFFFFFFFFFFF (263-1)。没有为它提供常量。

在网络平台上,最大整数值为double.maxFinite

如果我必须做一些需要初始最大值的事情(可能是找到列表的最小元素),我宁愿从第一个元素开始,然后输入一个空输入。

作为第二选择,我会使用num 作为累加器,并使用double.infinity 作为起始值。然后我会在最后检查并做一些有用的事情,如果该值仍然是无限的。

【讨论】:

  • 明白。使用我已经完成的第一个元素,我总觉得有点笨拙,但我想不会比分配 INT_MAX 更糟。我只是想也许我在阅读文档时遗漏了一些东西。直觉上,至少对我来说,似乎应该有明显的常数,就像在许多其他语言中一样。哦,好吧。
  • 如果有这样一个常数会很方便,但人们倾向于不同意他们是否想要 2^53(又名“最大精确整数双精度”)、double.maxPositivedouble.infinitt 作为网络上的最大整数值。所有这些都是ints(如果您检查is int - 它们本身等于.floor(),因此它们被视为整数。)
  • 如果您使用theIterable.reduce((a, b) { ... }),在第一次迭代中您将查看列表的两个元素,并返回新的候选者。不需要 MIN 或 MAX 值。
猜你喜欢
  • 2019-11-30
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多