我不想在这里提出这个问题,但我搜索了SO和Google都没有成功。我在许多地方都看到了诸如while(var != -1)
之类的语句和其他语句,通常是循环,包含对-1的某种引用。使用-1是否有某种意义,或者它只是用于给出布尔值的整数表示,或类似的东西?如果有任何帮助,我主要在C#编程中看到过这个。
答案 0 :(得分:5)
-1
中的只是否定的。他们将一个数字与一个数字进行比较,看它是否确实等于负数。
拥有一个只应具有正值的整数字段(例如,在表示列表中的索引时)并不常见,在这种情况下,-1有时用于表示“非有效值”,例如,没有项目,因此没有索引。它们使用-1,因为int
不可为空;他们无法分配null
。
从理论上讲,这可能是一种不好的做法;它使用“神奇的价值”来表示比实际应该更多的东西。理想情况下,如果“无效”是变量表示它的有效内容应该是一个可以为空的整数(int?
或Nullable<int>
),但这是一个旧约定(从其他语言转移而没有可空的整数特征)因此很难完全消除。
答案 1 :(得分:4)
没什么特别的。只是在大多数框架和库中,返回集合中元素索引的函数或方法将返回-1,而当您要查找的内容不在集合中时。
例如,字符串b
中的字符foo
的索引在JavaScript,.NET中为-1,并且据我记得,也是Java。
许多开发人员在他们的脑海中烧毁了一个rom,说-1是未找到项目的索引。现在你知道了为什么。
答案 2 :(得分:3)
如果你知道一个int应该总是包含正值(例如一个项目计数或列表中的索引,-1可以是一种&#34;保留值&#34;,所以你要分配计数为-1,只要它为-1,你知道没有真正的价值,有点像&#34; null&#34;
除此之外我不认为-1具有任何特殊含义