首页 > 解决方案 > 制作 bprintfn (StringBuilder.AppendLine vs Append)

问题描述

我需要打印一堆命令行帮助。有一个 bprintf,但奇怪的是没有用于使用 StringBuilders 的 bprintfn。我很快意识到你不能自动添加任何东西(比如“\n”),因为 (format:PrintF.StringFormat<'a, unit>) 参数必须放在最后。

终于让这个与 kprintf 一起工作了。这似乎很有用。我是否忽略了这样做的内置方式?

module helper =
    let bprintfn (sb : StringBuilder) =
        Printf.kprintf (fun s -> sb.AppendLine s |> ignore)


module Command =
    
    let printMan arg =
        let sb = StringBuilder()
        let a format = helper.bprintfn sb format
        
        a "Title"
        a ""
        a "body1 %s" arg
        a ""
        a "body2"
        a ""
        a "footer"
        
        sb.ToString()
        

标签: f#

解决方案


推荐阅读