包与导入
Scala使用包来创建用于模块化程序的命名空间。
1 创建包
通过在Scala文件的顶部声明一个或多个包名称可以创建包
package com.hk.test1
惯例是将包命名为与包含Scala文件的目录相同的名称。但是,Scala与文件布局无关。
package users的sbt项目目录结构如下:
位于相同包下的多个Scala文件具有相同的包声明。
另一种声明包的方式是使用花括号,并且这种方式可以嵌套包,并且提供更好的范围与封装控制。
package test1 {
package sss {
class ssss {}
}
}
报名应该为小写,并且如果代码在一个拥有网站的组织中开发,它应该使用如下约定:< top-level-domain >.< domain-name >.< project-name >。
例如,如果谷歌具有一个名为SelfDrivingCar的项目,项目名应当为:
package com.google.selfdrivingcar.camera
class Lens
而它对应的目录结构应当为:
SelfDrivingCar/src/main/scala/com/google/selfdrivingcar/camera/Lens.scala
2 导入
import子句用于方法其他包中的成员(类、特质、函数等),访问相同包下成员不需要import语句。
# 导入com.hk.test1.eeee包下所有元素
import com.hk.test1.eeee._
# 导入类wwww
import com.hk.test1.eeee.wwww
# 导入类wwww与类iii
import com.hk.test1.eeee.{wwww,iii}
# 导入类wwww并将其名改为www
import com.hk.test1.eeee.{wwww => www}
Scala与Java的区别之一便是,Scala可以在任意位置使用import语句。
import com.hk.test1.eeee.iii
val i:iii = new iii
如果出现命名冲突,可以通过在导入的包名前添加_root_前缀从项目的根处导入。
# 从项目的根处导入
import _root_.com.hk.test1.eeee.iii
注意:scala与java.lang包与object Predef相同,默认导入。