包对象

浅谈Scala 2.8的包对象(package object)

吃可爱长大的小学妹 提交于 2019-12-07 19:07:19
Scala 2.8提供包对象(package object)的新特性。什么是包对象呢?按我的理解,根据Scala“一切皆对象”设计哲学,包(package)也是一种对象。既然是对象,那么就应该有属性和方法,也可以在包对象内声明某个类型的别名。举个例 package com{ package object ggd543{ type HashMap[A,B] = scala.collection.mutable.HashMap[A,B]; val HashMap = scala.collection.mutable.HashMap def print = println("hello, ggd543") } package object aiguozhe{ var name = "aiguozhe" def sayHello = println("hello") } } 可以看到,定义包对象跟定义一个普通的伴随对象(companion object)在写法上的唯一区别就是在关键字 object 前加上 package 。 然后我们可以像使用伴随对象那样使用包对象,比如 object Test extends Application{ val myMap: com.ggd543.HashMap[String,String]= null; println(com.ggd543