常见于scala的数组和列表中

mak*_*aks 1 scala

我是新来斯卡拉(刚开始学习),但想通了不便怪我:有类数组和列表,它们都具有这样的方法/功能foreach,forall,map等,但任何这些方法不能继承从一些特殊的类(特质).从java的角度来看,如果ArrayList提供一些契约,那么该契约必须在接口中声明并部分在抽象类中实现.为什么在scala中每个类型(Array和List)声明自己的方法集?为什么他们没有一些共同的类型?

om-*_*nom 8

但是这些方法中的任何一个都不是从某些特殊类(特征)继承的

这根本不是真的.

如果你打开scaladoc并查找说出.mapArray和List的方法,然后点击它,你会看到它的定义:

列表:

在此输入图像描述

对于数组:

在此输入图像描述

另请参阅有关TraversableIterable的信息,这两个信息都定义了scala集合中的大多数契约(但某些集合可能会重新实现Traversable/Iterable中定义的方法,例如效率).

您可能还希望查看集合之间的关系(滚动到两个图表).