我试图使用字符串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) –