【发布时间】:2016-09-12 22:04:04
【问题描述】:
我注意到使用 F# printfn 时出现意外行为。 它似乎将格式字符串分解为块并为每次调用 printfn 调用 Console.Write 多次。我希望它格式化整个字符串,然后调用 Console.WriteLine 一次。
我注意到了这一点,因为我使用 Console.SetOut 调用和我自己的 TextWriter 来拦截标准控制台输出,它试图在每一行输出前加上时间戳和一些额外的自定义文本。
什么给了?
【问题讨论】:
-
查看这个帖子,似乎暗示它与数据验证有关:stackoverflow.com/questions/18551851/…
-
如果你想为每一行添加前缀,你应该累积文本直到调用
WriteLine。你有什么问题? -
是的,我可以这样做,但我只是想知道它为什么会这样。为什么要这样实施?对我来说,就整行文本的 WriteLine 单次调用而言,实现它似乎要直接得多。而不是将其分解为效率低得多的块,并且还会产生反直觉的行为
标签: f# printf console.writeline