如何在 Kotlin 中禁用字符串插值?

7

我有一个文本,如"$ $abc $$abc ${a} ${}"。我想要完全禁用字符串插值,并且不需要逐个转义字符串中的每个$字符。我该怎么办?在Scala中,您可以使用s"$ $abc $$abc ${a} ${}"声明启用了插值的字符串,而普通字符串则未经过插值处理。

1个回答

9

字符串内插可以用于常规字符串和原始字符串(使用""")。因此,您需要转义它们,在常规String中显然更容易(请参见此处)。

"$ \$abc \$\$abc \${a} \${}"

很抱歉,我恐怕没有其他选择了。


2
实际上,如果有类似于C#逐字字符串的东西@"$a$b$c" == "\$a\$b\$c",那就太好了,不是吗? - Amir Abiri
很遗憾,单引号语法仅用于字符。在我看来,Kotlin语义树可以将“$”和“x”视为单个字符,而“$$”和“xx”则是非插值字符串,因为您始终可以使用"$"和"x"来表示长度为一个字符的字符串。也许在未来的版本中会实现这一点?由于演进完全向后兼容(除了解析测试用例期望出现解析错误之外),这是完全可行的。 - Claude Brisson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接