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

时间:2011-09-12 20:32:51

标签: f# newline f#-interactive

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

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

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

1 个答案:

答案 0 :(得分:2)

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

#if INTERACTIVE
  text.Replace("\n", System.Environment.NewLine)
#endif

我不知道在fsi中改变它的方法。另一种选择是删除或标准化换行符,而不管执行环境如何。如果确切的长度很重要,那么无论如何都可能是好的。

修改

如果新行仅用于提高可读性,则可以使用反斜杠结束每一行。在编译时删除以下行中的反斜杠,换行符和前导空格。

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

这在VS和FSI中的作用相同。我假设您通过Alt+EnterAlt+'向FSI发送了一些代码。