Expert F#のかなりの部分を読み、実際のアプリケーションの構築に取り組んでいます。デバッグ中に、repl ウィンドウで読みやすくするために、次のような fsi コマンドを渡すことに慣れてきました。
fsi.AddPrinter(fun (x : myType) -> myType.ToString())
これを拡張してprintfフォーマッターで動作するようにしたいので、次のように入力できます
printf "%A" instanceOfMyType
カスタムタイプの出力を制御します。この本は、これが可能であることを暗示しています (p 93、「一般的な構造フォーマットは、F# の Web サイトで取り上げられているトピックである、ユーザー定義のデータ型で動作するように拡張できます」)。実際にこれを達成するために。誰も方法を知っていますか?それは可能ですか?
編集:
コードサンプルを含める必要がありました。これは、私が扱っているレコードタイプです。
type myType =
{a: int}
override m.ToString() = "hello"
let t = {a=5}
printfn "%A" t
printfn "%A" (box t)
どちらの print ステートメントも次のようになります。
{a = 5;}