我看到名称以 Like
结尾对于许多 Scala 类型。这些特征的目的是什么?
例如 IndexSequenceLike
, 或 QueryLike
, ETC。
最佳答案
Like 后缀用于实现特征,类似于 Java 如何使用“Impl”来实现接口(interface)。
http://docs.scala-lang.org/overviews/core/architecture-of-scala-collections.html
Scala trait 类似于 Java 接口(interface),只是更好,因为 trait 可以包含函数定义,而不仅仅是声明。IndexedSeqLike
因此,trait 是 IndexedSeq
的实现。特征(界面)。当添加到类定义中时,它的实现方法会随之而来。
这允许在 Scala 库中重用代码,并有助于实现 Iterator 应始终返回相同类型的约定。
关于Scala:目的就像特征上的后缀,例如IndexSequenceLike,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171819/