printfn“%A”“c”使用F#

时间:2012-03-16 10:10:45

标签: f# string-formatting

通过运行printfn "%A" "c",我得到"c"

通过运行printfn "%s" "c",我得到c

为何与众不同? char也是如此。

2 个答案:

答案 0 :(得分:8)

%A说明符试图暗示对象类型 - "c"是否试图显示它是一个字符串。执行%s时,编译器知道您要打印字符串,因此不会打印引号

答案 1 :(得分:4)

由于printfn "%A"使用反射,因此它显示的结果与F#Interactive自动打印的值相同。另一方面,%s仅用于字符串,它显示字符串的内容。

使用"%s"方法时,"%O"的一般情况为ToString%A说明符很慢,但对于没有重写ToString方法的结构类型和类型很有帮助。