2009-12-11 90 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