我試圖使用字符串litterals的串聯 如在Map[Int, String]
定義值:定義地圖[詮釋,字符串]長字符串作爲權值
scala> val m: Map[Int, String] = Map(1 -> "a" + "b")
,但我得到以下錯誤sbt console
<console>:7: error: type mismatch;
found : String
required: (Int, String)
val m: Map[Int, String] = Map(1 -> "a" + "b")
我之所以會想要做這樣的事情是因爲我想定義從ID映射到一些代碼,就像這樣:
Map(1 -> s"""SELECT year, COUNT(*) FROM""" +
s""" (SELECT id, YEAR(pb_date) AS year FROM Publications) AS Res1""" +
s"""GROUP BY year;""")
而不必爲每個代碼片段定義一個字符串作爲Map右值。
有沒有辦法做到這一點?
正如一邊,很多人認爲SQL字符串結構是差的形式。如果你想將一個id映射到一個函數,你可以這麼做:函數是Scala中的值,因此你可以將它們存儲在你的地圖中,像[this](http://pastebin.com/ZE4ELrca) –