Intellij Idea 替换为. length比较警告

ncgqoxb0  于 2023-02-03  发布在  其他
关注(0)|答案(2)|浏览(141)

IntelliJ一直建议将.length == X替换为.lengthCompare(X) == 0。为什么这样更好呢?不太明白,因为建议的更改更冗长。

mutmk8jj

mutmk8jj1#

它更高效
由于length是对List这样的集合的linear操作,所以执行x.length == 3需要先计算长度,然后将其与值进行比较,另一方面,.lengthCompare会在发现比较已经错误时终止计算长度。

v440hwme

v440hwme2#

在Scala 2.13中,我们有lengthIs方法,可以用来比较某个集合的长度,就像这个用例中的length一样,但是lengthCompare是隐藏的!所以它既高效又可读。

val list = List(1,2,3)
list.lengthIs > 2 // true

https://www.scala-lang.org/api/2.13.4/scala/collection/Seq.html#lengthIs:scala.collection.IterableOps.SizeCompareOps

相关问题