a + b
文字列補間には、スタイルからの単純な変換を許可しない特別なルールがあることに気が狂いそうになります。
// ok
def test(f: java.io.File) = {
val abs = f.getAbsoluteFile
val isF = abs.isFile
"select " + (if (isF) "file" else "folder") +"\"" + abs.getName +"\" of folder"
}
// fail
def test(f: java.io.File) = {
val abs = f.getAbsoluteFile
val isF = abs.isFile
s"select ${if (isF) "file" else "folder"} \"${abs.getName}\" of folder"
}
そして、素敵なエラーメッセージが表示されます:
<console>:38: error: value $ is not a member of String
s"select ${if (isF) "file" else "folder"} \"${abs.getName}\" of folder of the front window"
^
ここで s-string の何が問題になっていますか?