2009-12-11 56 views
0

我正在阅读罗伯特皮克林的F#的基础。当我试图在书中(下)我得到一个运行时错误的功能打印,运行的第一个例子“无法解析格式字符串‘失踪格式说明’”F#示例代码的基础不能编译,为什么?

#mytestapp 
let message = "Hello 
    World\r\n\t!" 
let dir = @"c:\projects" 

let bytes = "bytesbytesbytes"B 

let xA = 0xFFy 
let xB = 0o7777un 
let xC = 0b10010UL 
let print x = printfn "A%" x 
let main() = 
    print message; 
    print dir; 
    print bytes; 
    print xA; 
    print xB; 
    print xC 
main() 

输出应该是(根据书):

“你好\ n                世界\ r \ n \ t!”
“c:\ projects”
[| 98uy; 121uy; 116uy; 101uy; 115uy; 98uy; 121uy; 116uy; 101uy; 115uy; 98uy;
    121uy; 116uy; 101uy; 115uy |] -1y
18UL

我想,也许我没有提到的东西,我应注意什么?

+0

我编辑了printmessage来打印消息。那不是错误吗? – Peter 2009-12-11 15:25:24

+1

它是%A,而不是% – 2009-12-11 15:34:14

+0

我想你可能想看看这个主题; http://stackoverflow.com/questions/791706/in-f-how-do-i-customize-output-of-a-custom-type-using-printf – nlucaroni 2009-12-11 15:35:33

回答

5

您希望您的格式字符串为“%A”,而不是“A%”。格式说明符在%符号后出现。你的%符号后什么也没有 - 因此,Missing format specifier