由于我使用 F# 进行研究(特别是使用 F# 交互),我希望有可切换的“调试时打印”功能。
我可以
let dprintfn = printfn
F# 互动 说
val dprintfn : (Printf.TextWriterFormat<'a> -> 'a)
我可以使用
dprintfn "myval1 = %d, other val = %A" a b
每当我想在我的脚本中。
现在我想定义dprintfn
不同的,这样它会忽略它的所有参数,但语法兼容printfn
. 如何?
我想到的最接近(但不起作用)的变体是:
let dprintfn (arg: (Printf.TextWriterFormat<'a> -> 'a)) = ()
但是它下面的内容没有编译dprintfn "%A" "Hello"
,导致error FS0003: This value is not a function and cannot be applied
.
PS我目前使用别名Debug.WriteLine(...)
作为解决方法,但是对于理解 F# 的类型系统,这个问题仍然很有趣。