我寫了下面的簡單程序如何正確連接字符串?
object Main extends App {
println(new MyClass toString)
}
class MyClass {
var pairs: Map[String, String] = Map[String, String](
"key1" -> "value1",
"key2" -> "value2",
"key3" -> "value3"
)
val Separator = "separator"
override def toString = {
pairs map { case (key, value) => s"$key=$value" } mkString(" ") + Separator
}
}
我認爲該計劃將打印key1=value1 key2=value2 key3=value3 separator
。但它確實沒有。相反,它會打印:
key1=value1 separatorkey2=value2 separatorkey3=value3
爲什麼?我以爲我先建立了地圖的字符串表示,然後將separator
添加到表示中。
顯然'mkString'優先於'+',這有點奇怪但可以理解。使它們顯式方法調用或將它們包裝在括號中。 – Bergi