scala:包和源目录层次结构之间的关系

时间:2016-06-06 04:12:35

标签: scala

源文件中声明的包是否必须与目录层次结构匹配?例如,在源文件a / b / c / foo.scala中,包必须是a.b.c?如果是这样,为什么还要在源文件中再次重复?如果没有,既然源文件可以声明它所属的任何包,那么目录层次结构的用途是什么?

对源文件中的内容有一些限制吗?例如,foo.scala是否可以包含public class foo,其他类或函数只能是私有或包访问?

1 个答案:

答案 0 :(得分:3)

它不是一个要求,但它是通常的行为。文件a / b / c / foo.scala可以是包x.y.z.我想你可以说目录管理你存储代码的方式,而包管理你公开代码的方式。

对源文件中的内容没有任何限制(这与Java不同)。例如,foo.scala可以包含公共类栏,或foo,或两者。