gpt4 book ai didi

string - Unicode转义中的Scala原始字符串错误

转载 作者:行者123 更新时间:2023-12-04 17:20:04 26 4
gpt4 key购买 nike

在 Scala 字符串中需要逐字逐字地包含这个文字:\usepackage{x} .因此,期望的是对于

val s = """ ... \usepackage{X} ... """

println(s)
... \usepackage{X} ...

迄今为止的尝试包括,
scala> """\usepackage{X}"""
<console>:1: error: error in unicode escape
"""\usepackage{X}"""
^

scala> raw"""\usepackage{X}"""
<console>:1: error: error in unicode escape
raw"""\usepackage{X}"""
^

单双引号字符串也证明不成功。

关注 http://docs.scala-lang.org/overviews/core/string-interpolation.html ,一个工作示例包括
scala> raw"a\nb"
res1: String = a\nb

这不包括 unicode 情况。

最佳答案

您似乎遇到了问题 SI-4706: Unicode literal syntax thwarts common use cases for triple-quotes .
在 Scala 中,unicode 转义序列不仅在字符或字符串文字中处理。以下代码是否有效可能并不明显:

scala> 5 \u002B 10
res0: Int = 15
不幸的是,如果您不想完全禁用 unicode 转义( -Xno-uescape ,仅在 Scala 2.13.1 之前可用,请参阅 PR #8282ee8c1ef8 ),似乎没有一个好方法可以解决这个问题。
SI-4706 问题中建议的解决方法之一是分隔反斜杠字符:
scala> """\""" + """usepackage{X}"""
res1: String = \usepackage{X}

关于string - Unicode转义中的Scala原始字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058549/

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