为什么 F# 中三引号字符串中的换行符与 Environment.NewLine 不同?

Dab*_*abo 3 f#

F# 中三引号字符串中的换行符在 Windows(以及 Linux)上似乎被转换为 LF,而不是 CRLF。然而,Environment.NewLine在 Windows 上是 CRLF。

在 Windows 上:

let tripleQuotedString = """1
2
3"""
let concatenatedString = "1" + Environment.NewLine + "2" + Environment.NewLine + "3";;
printfn "%A" (Seq.toList tripleQuotedString) // yields ['1'; '\010'; '2'; '\010'; '3']
printfn "%A" (Seq.toList concatenatedString ) // yields ['1'; '\013'; '\010'; '2'; '\013'; '\010'; '3']
Run Code Online (Sandbox Code Playgroud)

F# 规范中似乎没有提及这一点。这是一个经过深思熟虑的设计决定吗?

小智 5

三引号字符串的行结尾与源代码文件的行结尾相同。