标签:关键字 mac com 使用 nta 单例 私有 定义 nio
Scala 比 Java 更面向对象一点,是 Scala 的类不允许静态(static)成员。对此类使用场景,Scala 提供了 单例对象(object)。单例对象的定义看上去跟类定义很像,只不过 class 关键字被换成了 object 关键字。
在事例中单例对象名叫 ChecksumAccumulator, 跟前一个例子中的类名一样。
当单例对象跟某个类公用同一个名字时,它被称作这个类的 伴生对象(companion object)。
必须在同一个源码文件中定义的类和类的伴生对象。同时,类又叫做这个单例对象的伴生类。类和他的伴生对象可以互相访问对方的私有成员。
import scala.collection.mutable object ChecksumAccumulator { private val cache = mutable.Map.empty[String, Int] def calculate(s: String): Int = if (cache.contains(s)) cache(s) else { val acc = new ChecksumAccumulator for(c <- s) acc.add(c.toByte) val cs = acc.checksum() cache += (s -> cs) cs } }
标签:关键字 mac com 使用 nta 单例 私有 定义 nio
原文地址:https://www.cnblogs.com/Lyh1997/p/11734857.html