小编Fen*_*ndy的帖子

在F#中,你如何理解ParamArray函数(如sprintf)?

在F#中,你如何理解接受可变数量参数的函数?

我有这样的代码...(日志功能只是一个例子,确切的实现并不重要)

let log (msg : string) =
    printfn "%s" msg

log "Sample"
Run Code Online (Sandbox Code Playgroud)

它使用sprintf格式化的字符串在整个代码中调用,例如.

log (sprintf "Test %s took %d seconds" "foo" 2.345)
Run Code Online (Sandbox Code Playgroud)

我想在日志函数中讨论sprintf功能,看起来像......

logger "Test %s took %d seconds" "foo" 2.345
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西

let logger fmt ([<ParamArray>] args) =
    log (sprintf fmt args)
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将ParamArray参数传递给sprintf调用.

这是如何在F#中完成的?

printf f# currying paramarray

6
推荐指数
2
解决办法
1298
查看次数

标签 统计

currying ×1

f# ×1

paramarray ×1

printf ×1