通过运行printfn "%A" "c"
,我得到"c"
。
通过运行printfn "%s" "c"
,我得到c
。
为何与众不同? char
也是如此。
答案 0 :(得分:8)
%A
说明符试图暗示对象类型 - "c"
是否试图显示它是一个字符串。执行%s
时,编译器知道您要打印字符串,因此不会打印引号
答案 1 :(得分:4)
由于printfn "%A"
使用反射,因此它显示的结果与F#Interactive自动打印的值相同。另一方面,%s
仅用于字符串,它显示字符串的内容。
使用"%s"
方法时,"%O"
的一般情况为ToString
。 %A
说明符很慢,但对于没有重写ToString
方法的结构类型和类型很有帮助。