【问题标题】:How to disable string interpolation in Kotlin?如何在 Kotlin 中禁用字符串插值?
【发布时间】:2018-06-01 10:04:58
【问题描述】:

我有一个类似"$ $abc $$abc ${a} ${}" 的文本。我想完全禁用字符串的字符串插值,而不是从字符串中转义每个 $。我应该怎么办?在 Scala 中,您声明一个字符串,其中使用 s"$ $abc $$abc ${a} ${}" 启用插值,而普通字符串未插值。

【问题讨论】:

    标签: kotlin string-interpolation


    【解决方案1】:

    字符串插值适用于常规字符串和原始字符串 (""")。所以你需要逃避它们,这在普通的String 中显然更容易(见here)。

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

    我很抱歉,但我没有别的办法。

    【讨论】:

    • 拥有像 C# 逐字字符串 @"$a$b$c" == "\$a\$b\$c" 这样的东西实际上会很好,不是吗?
    • 太糟糕了,单引号语法只保留用于字符。 IMO Kotlin 语义树可以认为 '$' 和 'x' 是单个字符,而 '$$' 和 'xx' 是非插值字符串,因为您始终可以将 "\$" 和 "x" 用于一个字符长度的字符串。也许在未来的版本中?由于进化是完全向后兼容的(除了解析预期解析错误的测试用例),它是完全可行的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    相关资源
    最近更新 更多