summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/MapLike.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-12-07 17:31:49 +0000
committerMartin Odersky <odersky@gmail.com>2009-12-07 17:31:49 +0000
commit1e88594f358d08b5e9b22ba87280003a581359e4 (patch)
treee68b6d1095ff1b1345e86d8a67c1f874849a31ff /src/library/scala/collection/mutable/MapLike.scala
parentde1d172a15e20ec7e96d96d5cea5cb41162b9f75 (diff)
downloadscala-1e88594f358d08b5e9b22ba87280003a581359e4.tar.gz
scala-1e88594f358d08b5e9b22ba87280003a581359e4.tar.bz2
scala-1e88594f358d08b5e9b22ba87280003a581359e4.zip
new doc comment generation, including some new ...
new doc comment generation, including some new style doc comments in collection classes.
Diffstat (limited to 'src/library/scala/collection/mutable/MapLike.scala')
-rw-r--r--src/library/scala/collection/mutable/MapLike.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/library/scala/collection/mutable/MapLike.scala b/src/library/scala/collection/mutable/MapLike.scala
index d03858a68f..92f1b5bba6 100644
--- a/src/library/scala/collection/mutable/MapLike.scala
+++ b/src/library/scala/collection/mutable/MapLike.scala
@@ -103,6 +103,15 @@ trait MapLike[A, B, +This <: MapLike[A, B, This] with Map[A, B]]
*/
override def updated[B1 >: B](key: A, value: B1): mutable.Map[A, B1] = this + ((key, value))
+ /** If given key is already in this map, returns associated value
+ * Otherwise, computes value from given expression `op`, stores with key
+ * in map and returns that value.
+ */
+ def cached(key: A, op: => B) = get(key) match {
+ case Some(v) => v
+ case None => val v = op; update(key, v); v
+ }
+
/** Add a new key/value mapping and return the map itself.
*
* @param kv the key/value mapping to be added