Ste*_*sen 5 f# string-formatting
我最近变得有点自满地写了像
printf "\n%f\n" 3.2
Run Code Online (Sandbox Code Playgroud)
代替
printf "%s%f%s" Environment.NewLine 3.2 Environment.NewLine
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法像第一个版本一样编写安全的第二个版本(即格式字符串中的一个特殊字符,它插入Environment.Newline以便不需要格式字符串中每个换行符实例的参数)?
如何使用kprintf进行双遍,用NewLine替换\n:
let nprintf fmt = Printf.kprintf (fun s -> s.Replace("\n", Environment.NewLine) |> printf "%s") fmt
Run Code Online (Sandbox Code Playgroud)
然后在nprintf "\n%f\n" 3.2所有\n中被NewLine取代.
没有转义序列,但你可以缩短它:
[<AutoOpen>]
module StringFormatting =
let nl = System.Environment.NewLine
//Usage
printfn "%s%f%s" nl 3.2 nl
Run Code Online (Sandbox Code Playgroud)
这是MSDN上的字符转义列表.
顺便说一句,我想知道这会做什么:
printfn @"
%f
" 3.2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4653 次 |
| 最近记录: |