Dart语言中是否有int.INFINITY?

24

我看到有一个double.INFINITY,但是我找不到一种方法来表示"int INFINITY"。这很有趣,因为我发现我可以使用some_integer.isInfinite

在Dart中如何表示int.INFINITY?这是否有意义?


1
有什么意义呢?整数具有固定的大小,它们无法超出范围。让它们表示超出其范围的内容将是相当不利的。 - Marc B
1
@MarcB 在Dart中,整数没有固定的大小。它们只受“RAM限制”。https://www.dartlang.org/articles/numeric-computation/ - Fox32
2
我猜测由于isInfinite方法是从num继承而来的,而且int可以达到RAM允许的最大值,所以当在int上调用时它总是返回false。换句话说,在Dart中没有“整数无穷大”,该方法只是因为它从num继承而来。 - Tonio
1个回答

23

不是的,所有Dart整数都是有限的。

你可以询问42.isInfinite,但预计答案为false。如果你检查int类的代码,你会发现这段代码:bool get isInfinite => false;

getter之所以存在是因为它在num上定义的,而numintdouble的超类,你可以对数字执行许多操作,而不知道它们是整数还是双精度浮点数。


谢谢!我们是否应该更新 int.isInfinite 的 dartdocs,以说明“始终返回 false”?目前,它说:“如果数字是正无穷大或负无穷大,则为 True;否则为 false。” - Seth Ladd
我们可以添加类似于“所有整数都是有限的,只有双精度浮点数具有无限值。”的阐述。 - lrn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接