在F#交互窗口中显示完整字符串

问题描述 投票:1回答:2

如果我在Visual Studio代码中键入以下内容到fsx

let longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

并通过突出显示并按Alt + Enter在其上运行F#interactive,交互式窗口中的输出为

- let longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepte- ur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";;
val longString : string =
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed "+[384 chars]

或者截图:

screenshot output

如何告诉F#交互式窗口显示完整的字符串?还有快捷方式吗?

我知道this post,但我知道这是不同的,因为字符串不是懒惰评估。

visual-studio-code f# f#-interactive vscode-debugger
2个回答
3
投票

printfn将完全打印出来:

printfn "%s" longString

或者,您可以更改fsi对象属性,例如:

fsi.PrintWidth <- 1000;;

此外,您可以使用AddPrinter

fsi.AddPrinter (fun (s:string) -> s)

这是文档:https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/interactive.interactivesession-class-%5bfsharp%5d


2
投票

如果它只是用于测试/调试:如果您在VSC中,则可以按照提及的方式以交互方式运行脚本。您可以通过使用交互式终端并键入(在所述交互式终端中)来利用它

longString;;

//output
val it : string =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

然后,这将显示整个字符串,并且在大多数情况下是足够的(因为您不希望用不必要的输出混乱您的脚本)。

© www.soinside.com 2019 - 2024. All rights reserved.