以下插值字符串有什么问题?编译器抱怨无法找到符号str
:
private def colorGreen(str: String) = s"\u001B[32m$str\u001B[0m" // does not work
private def colorGreen(str: String) = s"\u001B[32m${str}\u001B[0m" // works
答案 0 :(得分:3)
显然,Scala字符串插值器会自动在s"\u001B[32m$str\u001B[0m"
中附加unicode(即使它意味着<ESC>
)。因此,它会查找名为str\u001B
的变量。
原则上你可以进行以下插值工作:
private def colorGreen(str\u001B: String) = s"\u001B[32m$str\u001B[0m"