printf
、fprintf
など:すべてが%a
の変換を受け入れます。OCamlのユーザ定義プリンタ
マニュアルは%a
ため言う:。
は「ユーザ定義プリンタ二つの引数を取り、(現在の出力チャネル)outchanする最初のものを適用し、第二の引数することは、最初の引数を持たなければなりません。 out_channel - > 'b - >単位と2番目の' b。関数によって生成された出力は、現在の点でfprintfの出力に挿入されます。
私はユーザー定義のプリンタが何であるか、そしてそれをどのように実装して使用するのか理解できません。誰かが動機づけを説明し、例を提供することはできますか?
たとえば、複雑なデータ構造体を印刷する場合、カスタム関数を使用してデータ構造体を直接文字列に出力したり出力したりすることができないのはなぜですか?
'sprintf'と' 'ユニットの機能を取るksprintf' - >「 - >文字列 'のようなものです。 – nlucaroni
私の質問はおそらく非常に不正確でした。私が知りたいことは、文字列( 'printf'や'%s'や 'sprintf'や' ksprintf'など)に印刷するのではなく、 '%その文字列を使って他のことを行います。たとえば、チャンネルに出力するなどです。 – ndbd