字符串插值,转义引号

String interpolation, escaping quotation mark

事实证明这有多困难让我有些困惑。我已经查看过 Whosebug,但似乎没有适合我的解决方案。

我想做的事情:

val file = checkcache(fileName)

file match
{
    case Some(_) => {println(s"File $file found!"); file.get}
    case None => createFile(fileName)
}

现在,对于一个名为 "blubb" 的文件,它已经存在于它输出的缓存中,这工作得很好

File blubb found

和returns文件。

现在我想要这样

File "blubb" found

所以我尝试这样做:

case Some(_) => { println(s"File \" $file \" found!"); file.get}

编译器抛出

')' expected but string literal found.

这是为什么?如何正确转义双引号并且最好在 $file-variable 之后或之前没有空的 space?

使用三引号:

scala> s"""File "$file" found!"""
res0: String = File "blubb" found!