调用List.indexOf(...)时,如果不存在该值,则返回-1而不是null有什么好处?

例如:

val list = listOf("a", "b", "c")
val index = list.indexOf("d")

print(index) // Prints -1

如果索引改为null,结果会更干净吗?如果它具有可选的返回类型,则它将与elvis运算符:?兼容,并且可以执行诸如index?.let { ... }之类的操作。

没有匹配项时,返回-1而不是null有什么优势?

最佳答案

只是猜测,但我可以想到两个原因:

第一个原因是要与Java及其List.indexOf兼容

如文档所述:



第二个原因是具有与kotlins binarySearch相同的数据类型。



负值实际包含其他信息的位置(如果不存在)在何处插入元素。但是,由于普通的indexOf方法适用于未排序的集合,因此您无法推断出插入位置。

关于kotlin - 在indexOf(…)中返回-1而不是null有什么好处?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57165038/

10-12 19:48