调用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/