gpt4 book ai didi

F#:使用字符串组合 sprintf -> unit 函数以允许格式化

转载 作者:行者123 更新时间:2023-12-01 10:30:21 25 4
gpt4 key购买 nike

那里有关于如何做的信息custom processing on a format and its parts .我想做一些更简单的事情,具体来说,我想做一些这样的事情:

let writelog : string -> unit = ... // write the string to the log

let writelogf = sprintf >> writelog // write a formatted string to the log

编译器对此感到困惑我并不感到惊讶,但是有什么办法让它工作吗?

最佳答案

定义您自己的函数的最简单方法是使用 Printf.kprintf 函数,该函数采用像 printf 这样的格式化字符串。 kprintf 的第一个参数是一个函数,用于在格式化后显示结果字符串(因此您可以将它传递给您的 writelog 函数):

let writelog (s:string) = printfn "LOG: %s" s
let writelogf fmt = Printf.kprintf writelog fmt

作为第二个参数传递的fmt 参数是特殊格式字符串。这比 jpalmer 的解决方案效果更好,因为如果您指定一些额外的参数,它们将直接传递给 kprintf(因此参数的数量可以取决于格式化字符串).

你可以这样写:

> writelogf "Hello";;
LOG: Hello

> writelogf "Hello %d" 42;;
LOG: Hello 42

关于F#:使用字符串组合 sprintf -> unit 函数以允许格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com