加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 字符串插值转义引用PITA

发布时间:2020-12-16 19:17:31 所属栏目:安全 来源:网络整理
导读:它让我发疯,字符串插值有一些特殊的规则,不允许从b风格直接转换: // okdef test(f: java.io.File) = { val abs = f.getAbsoluteFile val isF = abs.isFile "select " + (if (isF) "file" else "folder") +""" + abs.getName +"" of folder"}// faildef te
它让我发疯,字符串插值有一些特殊的规则,不允许从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有什么问题?

解决方法

问题是,您不能将未转义的引号留在单引号字符串中,就像在文件和文件夹中放置引号一样.尝试使用三引号字符串,它允许在其中使用未转义的引号(它仅以引号的第二个三元组终止):

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读