【发布时间】:2013-10-22 20:17:38
【问题描述】:
字符串插值有一些特殊规则不允许从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 有什么问题?
【问题讨论】:
标签: scala string-interpolation