2015-07-12 102 views
1

對於這種情況有多困難,我感到有些莫名其妙。我已經看了看周圍的計算器,但沒有解決方案似乎對我工作正常。字符串插值,轉義引號

我想要做什麼:

val file = checkcache(fileName) 

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

現在,這個工作完全正常,用於一個名爲 「blubb」 文件,該文件已經存在於它outprints blubb發現

文件緩存

並返回文件。

現在,我想這是

文件 「blubb」 發現

所以我試着這樣做:

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

編譯器會引發

「) '預計但字符串文字被發現。

爲什麼是這樣的,以及如何正確地轉義雙引號,並且最好在$ file-variable之前或之前沒有空的空格?

+1

有一個問題https://issues.scala-lang.org/browse/SI-6476和PR https://github.com/scala/scala/pull/4308所以也許在我們的一生中。 –

回答

6

使用三重引號:

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