2011-07-08 17 views
1
> (1, 2, 3);; 
val it : int * int * int = (1, 2, 3) 

> printfn "%d" (1, 2 ,3);; 

    printfn "%d" (1, 2 ,3);; 
    --------------^^^^^^^ 

stdin(2,15): error FS0001: The type '('a * 'b * 'c)' is not compatible with any of the types byte,int16,int32,int64,sbyt 
e,uint16,uint32,uint64,nativeint,unativeint, arising from the use of a printf-style format string 

追加の機能を作成せずにこのタイプを印刷するにはどうすればよいですか?そうしないとあなたはタプルのための特定の一切のフォーマッタが存在しないとして、それを印刷し、あなたのタプルを解凍する必要がありますprintfnのしくみint * int * int型

printfn "%A" (1, 2, 3);; 

答えて

5

あなたはフォーマッタ%のAとのいずれかのタイプを印刷することができます。

+2

大規模な再帰的なデータ構造で試してみると、 "%A"は遅くなります。これは、リフレクションを使用してデータ構造をナビゲートし、結果を出力するので、 – Ankur

関連する問題