scala:package

作者: 木山手札 | 来源:发表于2020-01-28 16:16 被阅读0次
  • package可以多次声明
package org.foo
package bar.example
// 完整的包路径是org.foo.bar.example
  • package内只能声明类,不能声明变量、方法,从面相对象角度看包也是对象,在包里声明变量和方法使用package object
package object foo{ // 在foo包下
  val field:String = "A"
  def function(i:Int):Unit={}
}
  • scala中几乎所有的语法都支持嵌套声明
package foo1 {
  package object foo2 { // 包对象
    val book = "scala"
    def fun(): Unit = {
      println("包对象")
    }
  }

  class BarA { // 包中定义类
    var name: String = _ // 类中可以声明属性
  }

  package foo2 {
    class BarA {
      var age: Int = _
    }

    object PackageExample {
      def main(args: Array[String]): Unit = {
        val bar1 = new BarA //就近原则,使用foo2包下的BarA
        bar1.age = 3
        
        val bar2 = new foo1.BarA //明确使用foo1包下的BarA
        bar2.name = "bar"

        fun() //调用包对象中的方法
        println(book) // 调用包对象中的属性
      }
    }
  }
}

相关文章

网友评论

    本文标题:scala:package

    本文链接:https://www.haomeiwen.com/subject/mlqmthtx.html