标签:style blog color io ar for sp div on
ChecksumAccumulator.scala
import scala.collection.mutable.Map class ChecksumAccumulator { private var sum = 0 def add(b: Byte) { sum += b } def checksum(): Int = ~(sum & 0xFF) + 1 } object ChecksumAccumulator { private val cache = Map[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 } }
Summer.scala
import ChecksumAccumulator.calculate object Summer { def main(args: Array[String]) { for (arg <- args) println(arg +": "+ calculate(arg)) } }
$ scalac Summer.scala ChecksumAccumulator.scala
$ scala Summer of love
Program output:
of: -213
love: -182
标签:style blog color io ar for sp div on
原文地址:http://www.cnblogs.com/wzm-xu/p/4045549.html