ich in einer Map[Int, String]
Definition eine Verkettung von String litterals als Wert zu verwenden, ich versuche:definieren Map [Int, String] mit langen Strings als richtigen Wert
scala> val m: Map[Int, String] = Map(1 -> "a" + "b")
aber ich bekomme die folgende Fehlermeldung aus sbt console
<console>:7: error: type mismatch;
found : String
required: (Int, String)
val m: Map[Int, String] = Map(1 -> "a" + "b")
Der Grund, warum ich mag so etwas tun, weil ich Karten von einer ID zu einem gewissen Code definieren will, wie so:
Map(1 -> s"""SELECT year, COUNT(*) FROM""" +
s""" (SELECT id, YEAR(pb_date) AS year FROM Publications) AS Res1""" +
s"""GROUP BY year;""")
, ohne dass für jeden Code-Snippet, der als Map right-Wert angezeigt wird, eine Zeichenfolge definiert werden muss.
Gibt es einen Weg, dies zu erreichen?
Nebenbei bemerkt, eine Menge Leute betrachten SQL-String-Konstruktion als schlechte Form. Wenn Sie eine ID einer Funktion zuordnen möchten, können Sie genau das tun: Funktionen sind Werte in Scala, so dass Sie sie in Ihrer Map speichern können wie in [http://pastebin.com/ZE4ELrca] –