实际上,上述每个例子都被“暗地里”转换成了对某个对象的apply方法的调用。例如,上述第三行会展开成如下形式:

    除了apply方法,每个容器类的伴生对象还定义了一个名为empty的成员方法,该方法返回一个空容器。也就是说,可以代替List(),可以代替Map(),等等。

    concat,将任意多个Traversable容器串联起来fill 和 tabulate,用于生成一维或者多维序列,并用给定的初值或打表函数来初始化。 range,用于生成步长为step的整型序列,并且iterate,将某个函数反复应用于某个初始元素,从而产生一个序列。