我最近买了有点自满写作之类的东西换行和格式化
printf "\n%f\n" 3.2
,而不是
printf "%s%f%s" Environment.NewLine 3.2 Environment.NewLine
我的问题是:有什么办法可以作为很好地写出安全的第二个版本作为第一个(即插入Environment.Newline
的格式字符串中的特殊字符,以便不需要格式字符串中的每个换行实例的参数)?
我最近买了有点自满写作之类的东西换行和格式化
printf "\n%f\n" 3.2
,而不是
printf "%s%f%s" Environment.NewLine 3.2 Environment.NewLine
我的问题是:有什么办法可以作为很好地写出安全的第二个版本作为第一个(即插入Environment.Newline
的格式字符串中的特殊字符,以便不需要格式字符串中的每个换行实例的参数)?
如何使用kprintf为双通,与换行符替换\ N:
let nprintf fmt = Printf.kprintf (fun s -> s.Replace("\n", Environment.NewLine) |> printf "%s") fmt
然后在nprintf "\n%f\n" 3.2
所有人\ n换成NewLine。
我喜欢它!有一件事我学会了,我需要小心使用这个解决方案,那就是每个换成's'的换行符都必须用“\ n”来表示。 – 2011-02-23 14:47:38
这里没有一个转义序列,但你可以缩短它:
[<AutoOpen>]
module StringFormatting =
let nl = System.Environment.NewLine
//Usage
printfn "%s%f%s" nl 3.2 nl
Here是人物的名单逃脱MSDN上。
顺便说一句,我不知道这是什么会做:
printfn @"
%f
" 3.2
当我试着两个尾随\ n,它似乎得到你想要的。 printf“\ n%f \ n \ n”3.2 – 2011-02-23 05:46:41