test thing

Run Settings
LanguageScala
Language Version
Run Command
//import java.io._ //import scala.tools.nsc.Settings //import scala.tools.nsc.interpreter import scala.language.dynamics object Main extends App { //println(eval) class Hash(pairs: Tuple2[String, Any]*) extends Dynamic { var hash: Map[String, Any] = Map() pairs.foreach {kv => hash += (kv._1 -> kv._2) } //def |(key: String): Any = return hash.get(key).get def selectDynamic(key: String): Any = { if(hash contains key) { return (hash get key).get } else { return None } } def updateDynamic(key: String)(value: Any) = { if(hash contains key) hash -= key hash += (key -> value) } def applyDynamic(key: String)(args: Any*) = { //((hash get key) get)(5, 10) } //def applyDynamicNamed(key: String)(args: Any*) = {} def apply(): Map[String, Any] = return hash def apply(key: String): Any = return (hash get key).get def apply(pair: Tuple2[String, Any]) = { if(hash contains pair._1) hash -= pair._1 hash += pair } } def say(args: Any*) = args foreach println //def thing(exp: Boolean)(code: => Unit): Unit = if(exp) code var myHash = new Hash( "a" -> 1, "b" -> 2, "c" -> 3 ) say(myHash.a) myHash("b" -> 4) say(myHash.b) myHash.d = 5 say(myHash.d, myHash.e, myHash("c")) myHash() foreach println println((myHash() get "a") get) myHash.f = ((a: Int, b: Int) => println(a + b)) //myHash.f(5, 10) (myHash("f"))(5, 10) //println(myHash.f(5, 10)) }
Editor Settings
Theme
Key bindings
Full width
Lines