编程中-1的含义

dan*_*ood 3 c# variables methodology

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

Ser*_*rvy 5

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

具有仅应具有正值的整数字段(例如,在表示列表中的索引时)并不常见,在这种情况下,-1有时用于表示"非有效值",例如,没有item,因此没有索引.他们使用-1因为一个int不可为空; 他们不能分配null.

从理论上讲,这可能是一种不好的做法; 它使用"神奇的价值"来表示比实际应该更多的东西.理想情况下,如果"无效"是一个有效的变量来表示它应该是一个可以为空的整数(int?Nullable<int>),但这是一个旧的约定(从其他语言转移而没有可为空的整数的特征)所以很难消除完全.


Ren*_*nan 5

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

例如,在 JavaScript、.NET 中,b字符串中字符的索引foo将为 -1,据我所知,在 Java 中也是如此。

很多开发者都在心里烧了一个ROM,说-1是未找到项目的索引。现在你知道为什么了。