如何更改F#交互式换行符

如何更改F#交互式换行符,f#,newline,f#-interactive,F#,Newline,F# Interactive,在.fs文件中,换行符用\r\n表示,但在F#Interactive窗口中,换行符是\n 在我目前试图解决的一个问题中,多行文字字符串的长度很重要。因此,当我在F#交互式窗口中测试代码时,会出现一个问题,因为字符串的长度与正常执行时不同 我希望有一个选项可以将F#Interactive中的换行符“character”更改为\r\n,但我找不到它。有人知道我在哪里可以实现这一点,或者其他解决方法吗?您可以使用条件编译来处理这一问题: #if INTERACTIVE text.Replace("

在.fs文件中,换行符用
\r\n
表示,但在F#Interactive窗口中,换行符是
\n

在我目前试图解决的一个问题中,多行文字字符串的长度很重要。因此,当我在F#交互式窗口中测试代码时,会出现一个问题,因为字符串的长度与正常执行时不同


我希望有一个选项可以将F#Interactive中的换行符“character”更改为
\r\n
,但我找不到它。有人知道我在哪里可以实现这一点,或者其他解决方法吗?

您可以使用条件编译来处理这一问题:

#if INTERACTIVE
  text.Replace("\n", System.Environment.NewLine)
#endif
我不知道如何在fsi中改变它。另一种选择是删除或规范化换行,而不管执行环境如何。如果确切的长度是如此重要,那么无论如何,这样做可能是好的

编辑 如果换行符仅用于可读性,则可以在每行末尾加一个反斜杠。下一行的反斜杠、换行符和前导空格将在编译时删除

let text = "a\
            b"
printfn "%s" text //"ab"

这在VS和FSI中也适用。我假设你正在通过
Alt+Enter
Alt+'
向FSI发送代码位,那将非常难看。当然还有别的办法这是个奇怪的问题。我不知道VS和FSI之间的换行符是不同的。你说换行符只是为了可读性。我想您在这里指的是.fs中的换行符,而不是fsi。在这种情况下,你还没有考虑到我所说的新行,即字符串文本中的新行。是的,我指的是字符串文本。如果有新行帮助您阅读代码,而您不需要在字符串中使用它们,那么此解决方案可能适合您。谢谢,这是一个很好的解决方案。三次是一种魅力,对吧:)