4

我不想在这里问这个问题,但是我搜索了 SO 和 Google 都没有成功。我在很多地方都看到过诸如while(var != -1)和其他语句之类的语句,通常是循环,其中包含对 -1 的某种引用。使用 -1 是否有某种意义,或者它只是用作给出布尔值的整数表示,或类似的东西?如果有帮助的话,我主要在 C# 编程中看到了这一点。

4

3 回答 3

7

在 C#-1中只是负数。他们将一个数字与一个数字进行比较,看看它是否确实等于负数。

整数字段应该只有正值(例如,在表示列表中的索引时)并不少见,在这种情况下,-1 有时用于表示“不是有效值”,例如,没有项目,因此没有索引。他们使用 -1 因为 anint不可为空;他们不能分配null

从理论上讲,这可能是一种不好的做法;它使用“魔法值”来表示超出其真正应有的含义。理想情况下,如果“无效”对于变量来说是一个有效的东西来表示它应该是一个可以为空的整数(int?Nullable<int>)但这是一个旧的约定(从其他语言继承,没有可空整数的功能)所以很难消除完全。

于 2013-06-12T20:10:16.403 回答
4

没什么特别的。只是在大多数框架和库中,当您要查找的内容不在集合中时,返回集合中元素索引的函数或方法将返回 -1。

例如,b字符串中字符的索引foo在 JavaScript、.NET 和我记得的 Java 中都是 -1。

如此多的开发人员在他们的脑海中烧毁了一个 rom,说 -1 是未找到项目的索引。现在你知道为什么了。

于 2013-06-12T20:10:36.633 回答
3

如果您知道 int 应该始终包含正值(例如,项目计数或列表中的索引,-1 可以是一种“保留值”,因此您可以将计数分配给 -1 并且只要因为它是-1,你知道没有真正的价值被放进去,有点像“空”

除此之外,我认为 -1 没有任何特殊含义

于 2013-06-12T20:10:45.823 回答