为什么Kotlin Collections中没有isEmpty属性?

Gin*_*ndi 7 kotlin

我开始学习Kotlin,只是注意到这Collections.isEmpty是一个功能,而不是属性.但是,Collections.size属性而不是功能.

在大多数(所有?)集合中,我希望这两个集合在语义上是相关的,并且isEmpty可以简单地实现size === 0.

所以...为什么不是isEmpty财产?这只是一个设计错误吗?

Ily*_*lya 7

在考虑以下考虑因素的哪些方法java.util.Collection属性时,将其kotlin.collections.Collection考虑在内:

  • 二者sizeisEmpty可以根据被定性为属性科特林编码惯例,然而size是固有的收集和isEmpty仅仅是一个所述的衍生物size属性.
  • 在实现集合时,可以使用var属性(可能使用私有setter)覆盖size val属性,但是几乎不需要.isEmpty
  • 将方法作为属性公开需要在派生类中生成其他方法,最好使它们的数量尽可能小.