F# ToString() %A 格式不适用于单声道的 linux
F# ToString() %A formatting doesnt work on linux with mono
我使用随单声道一起安装的 fsharpc 编译器。
我想为我的某些类型覆盖 ToString() 方法。
问题是所有编译都很好,但 printf "%A"
只是给我默认的调试输出。所以为了绝对确定我没有遗漏任何东西,我在 try.fsharp.org 上写了一个简单的测试并自己编译了相同的代码。仍然只是获取默认格式
那么 .net 框架中是否缺少某些东西?
为确保 printf
调用 ToString()
,请使用 %O
格式而不是 %A
:
type MyType =
{
MyValue : string
}
override __.ToString() = "Hello!"
[<EntryPoint>]
let main argv =
let record = { MyValue = "A value" }
printfn "%A" record // { MyValue = "A value" }
printfn "%O" record // Hello!
0
详情见this link。
我使用随单声道一起安装的 fsharpc 编译器。
我想为我的某些类型覆盖 ToString() 方法。
问题是所有编译都很好,但 printf "%A"
只是给我默认的调试输出。所以为了绝对确定我没有遗漏任何东西,我在 try.fsharp.org 上写了一个简单的测试并自己编译了相同的代码。仍然只是获取默认格式
那么 .net 框架中是否缺少某些东西?
为确保 printf
调用 ToString()
,请使用 %O
格式而不是 %A
:
type MyType =
{
MyValue : string
}
override __.ToString() = "Hello!"
[<EntryPoint>]
let main argv =
let record = { MyValue = "A value" }
printfn "%A" record // { MyValue = "A value" }
printfn "%O" record // Hello!
0
详情见this link。