原始字符串中的换行符是否依赖平台?

fre*_*low 5 string cross-platform line-breaks rawstring kotlin

原始字符串中的换行符是否依赖平台?

val a = "one\ntwo";

val b = """one
two"""

println(a == b)
Run Code Online (Sandbox Code Playgroud)

换句话说,println上面的陈述是否保证打印true

zsm*_*b13 1

不幸的是,我找不到任何具体说明这一点的消息来源。感觉像是应该在文档中的东西。

然而,IntelliJ 中存在将原始字符串转换为普通字符串的意图操作。我认为可以安全地假设此操作不应改变代码的含义(或者如果改变了,则应将其作为错误提交)。如果您在带有换行符的原始字符串上尝试此操作,您可以看到它用一个\n字符替换了换行符。

您可以在此处查看操作的来源,以及对其进行的测试,该测试期望它将换行符转换为\n 此处(之前)此处(之后)


编辑:是对有关原始字符串的问题的评论,(据我所知)指出原始字符串\n中有行结尾。