Tra*_*vis 27 string templates kotlin
$在字符串文字中添加字符的最简洁方法是什么?
到目前为止我提出的最佳解决方案是"""${"$"}...""",对我来说看起来很难看.
Ale*_*lov 29
要在字符串文字中转义美元符号,请使用反斜杠字符:
"\$"
要在原始字符串文字("""...""")中转义它,您提供的解决方法确实是目前最简单的解决方案.错误跟踪器中存在一个问题,您可以为其注明和/或投票:KT-2425.
看起来您没有正确粘贴代码,因为您只有 3 个双引号。
无论如何,最好的方法是按如下方式转义美元符号:
"\$"
在当前的 Kotlin 1.0(和测试版)中,您可以使用反斜杠进行转义"\$"
这个通过的单元测试证明了以下情况:
@Test public fun testDollar() {
    val dollar = '$'
    val x1 = "\$100.00"
    val x2 = "${"$"}100.00"
    val x3 = """${"$"}100.00"""
    val x4 = "${dollar}100.00"
    val x5 = """${dollar}100.00"""
    assertEquals(x5, x1)
    assertEquals(x5, x2)
    assertEquals(x5, x3)
    assertEquals(x5, x4)
    // you cannot backslash escape in """ strings, therefore:
    val odd = """\$100.00""" // creates "\$100.00" instead of "$100.00"
    // assertEquals(x5, odd) would fail
}
"$100.00"除了最后一个奇怪的情况外,所有版本都会生成一个字符串。