在Python中,字符串Interpolation可以通过多种方式完成其中一种方法是替换Python字典中的值,其中a
和b
是地图中的键
str = "Value of a is %(a)s and b is %(b)s"
我在Scala中尝试过它
val data = Map(a->1, b->2)
val str = "Value of a is %(a)s and b is %(b)s"
有没有更好的方法在Scala中做同样的事情,因为我尝试的代码没有编译并给我结果?
答案 0 :(得分:2)
我可以考虑采用以下方式而不使用追加。
val data = Map("a" -> 1, "b" -> 2)
// C/C++ way of applying variable values into String
println("Value of a is %ds and b is %ds".format(data("a"), data("b")))
//place variable inside ${} section of strings
println(s"Value of a is ${data("a")}s and b is ${data("b")}s")
答案 1 :(得分:-1)
要在Scala中使用基本字符串插值,请在字符串前面加上字母 s ,并在字符串中包含变量,每个变量名称前面都有 $ 字符。如果是表达式,请用${...}
val data = Map("a" -> 1, "b" -> 2)
println(s"${data.toList}".replace("List", ""))
结果
((a,1),(b,2))
上述方法将为您提供地图中所有条目的结果,而不是一个或几个。