Scala 包与导入(完结)

包与导入


Scala使用包来创建用于模块化程序的命名空间。

1 创建包

通过在Scala文件的顶部声明一个或多个包名称可以创建包

package com.hk.test1

惯例是将包命名为与包含Scala文件的目录相同的名称。但是,Scala与文件布局无关。
package users的sbt项目目录结构如下:
Scala 包与导入(完结)_第1张图片

位于相同包下的多个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相同,默认导入。

翻译源:Scala Tour

你可能感兴趣的:(大数据)