gpt4 book ai didi

scala - 字符串插值转义引号 PITA

转载 作者:行者123 更新时间:2023-12-04 10:00:45 24 4
gpt4 key购买 nike

让我抓狂的是,字符串插值有一些特殊的规则,不允许从 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字符串有什么问题?

最佳答案

问题是您不能在单引号字符串中保留未转义的引号,就像在单词文件和文件夹周围放置引号时所做的那样。尝试使用三重引号字符串,它允许在其中包含未转义的引号(它仅以第二个三引号结尾):

s"""select ${if (isF) "file" else "folder"} "${abs.getName}" of folder"""

关于scala - 字符串插值转义引号 PITA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19517503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com