在.fs文件中,换行符由\r\n
表示,但在F#Interactive窗口中,换行符为\n
。
在我正在尝试解决的问题中,多行文字字符串的长度很重要。因此,当我在F#Interactive窗口中测试代码时会出现问题,因为字符串的长度与正常执行中的不同。
我希望有一个选项可以将F#Interactive中的换行符“字符”更改为\r\n
,但我找不到它。有谁知道我可以在哪里实现这一目标,或者其他一些解决方法?
答案 0 :(得分:2)
您可以使用条件编译来处理此问题:
#if INTERACTIVE
text.Replace("\n", System.Environment.NewLine)
#endif
我不知道在fsi中改变它的方法。另一种选择是删除或标准化换行符,而不管执行环境如何。如果确切的长度很重要,那么无论如何都可能是好的。
如果新行仅用于提高可读性,则可以使用反斜杠结束每一行。在编译时删除以下行中的反斜杠,换行符和前导空格。
let text = "a\
b"
printfn "%s" text //"ab"
这在VS和FSI中的作用相同。我假设您通过Alt+Enter
或Alt+'
向FSI发送了一些代码。