diff options
author | Martin Odersky <odersky@gmail.com> | 2007-02-19 13:56:55 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-02-19 13:56:55 +0000 |
commit | 68508bdd74fbb6e14143132b5e9bdaf89e4adf06 (patch) | |
tree | 53d5c39fe5d0f77aaca88484cc8b1479a58a67ce /src/library | |
parent | ce7fe41d5f7d831648068c8d82b7c6caa27aa3f5 (diff) | |
download | scala-68508bdd74fbb6e14143132b5e9bdaf89e4adf06.tar.gz scala-68508bdd74fbb6e14143132b5e9bdaf89e4adf06.tar.bz2 scala-68508bdd74fbb6e14143132b5e9bdaf89e4adf06.zip |
added explicit self defs
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/immutable/Map.scala | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala index 108cb07f44..65b0df4979 100644 --- a/src/library/scala/collection/immutable/Map.scala +++ b/src/library/scala/collection/immutable/Map.scala @@ -132,6 +132,22 @@ trait Map[A, +B] extends collection.Map[A, B] { def -- (keys: Iterator[A]): Map[A, B] = (this /: keys) ((m, key) => m - key) + + /** The same map with a given default function */ + def withDefault[B1 >: B](d: A => B1): Map[A, B1] = new Map[A, B1] { + def size = Map.this.size + def get(key: A) = Map.this.get(key) + def elements = Map.this.elements + def empty[C] = Map.this.empty + def update [B2 >: B1](key: A, value: B2): Map[A, B2] = + Map.this.update(key, value) withDefault d + def -(key: A): Map[A, B1] = Map.this - key withDefault d + override def default(key: A): B1 = d(key) + } + + /** The same map with a given default value */ + def withDefaultValue[B1 >: B](d: B1): Map[A, B1] = withDefault(x => d) + /** This function transforms all the values of mappings contained * in this map with function <code>f</code>. * |