This can be solved using the scala dynamic function:
import scala.language.dynamics object Cities extends App { var c = new DynamicMap[String, City]() createCity("Paris") createCity("Vallorbe") println(c.Paris, c.Vallorbe) def createCity(name: String) { c.self.update(name, new City(name)) } } class City(name: String) { override def toString = s"-[$name]-" } class DynamicMap[K, V] extends Dynamic { val self = scala.collection.mutable.Map[K, V]() def selectDynamic(key: K) = self(key) }
while doing:
(-[Paris]-,-[Vallorbe]-)
Eric Mariacher Feb 25 '14 at 9:56 a.m. 2014-02-25 09:56
source share