Scala权限
前提
理解权限的关键在于理解package的定义.
理解package
在Scala中,package必须定义在最上面的一行,用来说明该文件中的内容属于那个包,如果没有显示说明,则属于编译放置后的一级目录下. 按照以往开发的规则,包的名字代表了目录的层级的关系. 但是会有意外的情况,把某些不属于该目录层级关系下的文件放入,但是最后编译的时候会按照package为准,而不是放置源文件的目录层级关系.
理解Class
Class要具体位于某个package中,有两种表达方式. 第一种是将package定义在文件第一行,标明该文件的所有内容都属于该package. 第二种是限定package{} ,在{}里面定义的所有东西都属于该package.
两种方式可以一起使用
package test1 // ⚠️ test2 包在test1包下. package test2 { }
object-private权限
Scala中object-private权限是private[this],表示只允许在该实例内部使用,不允许其他任何对象访问.
class ClassOne {
private[this] def say(): Unit = {
}
def say(co : ClassOne) = {
// 编译不通过,因为say方法,只允许在该实例内部自己访问,而不允许其他对象访问.
co.