Scala中的双包语句
我在一些库中见过,例如Spray,双包规格如下:Scala中的双包语句,scala,package,Scala,Package,我在一些库中见过,例如Spray,双包规格如下: package cc.spray package http // code 这只是cc.spray.http包的一个亮点,还是像这样将两者分开有功能上的好处?单独的包语句将cc.spray和cc.spray.http放在范围内。这相当于: package cc.spray.http import cc.spray._ // implicitly, import cc.spray.http._ 也就是说,包cc.spray和包cc.spray
package cc.spray
package http
// code
这只是cc.spray.http包的一个亮点,还是像这样将两者分开有功能上的好处?单独的包语句将
cc.spray
和cc.spray.http
放在范围内。这相当于:
package cc.spray.http
import cc.spray._
// implicitly, import cc.spray.http._
也就是说,包cc.spray
和包cc.spray.http
的每个成员都是可见的。另一方面,包cc
的成员不可见
通过这种方式,您可以在其包层次结构中安全地使用名称,如
java
,而不会造成麻烦,同时,可以轻松地使希望可见的包范围可见。与许多其他内容一样,这是Scala 2.8引入的:其他答案会告诉您“什么”(将多个包的作用域暴露于当前环境中)和官方的Scala文档,以及该功能的详细原理。我们不要忘记从这种方法中获得的一个不错的胜利
// Foo.scala
package cc.spray
package http
class Foo {
...
}
// Bar.Scala
package cc.spray
package bar
import http._ // concise imports relative to cc.spray
class Bar {
...
}
就在你认为自己开始懂一门语言的时候,一些既懂又酷的东西出现了。。。