Я прочитал хороший кусок Expert F # и работаю над созданием реального приложения. Во время отладки я привык передавать команды fsi, подобные этому, чтобы сделать текст разборчивым в окне repl:
fsi.AddPrinter(fun (x : myType) -> myType.ToString())
Я хотел бы расширить это, чтобы работать с форматом printf, поэтому я мог бы напечатать, например.
printf "%A" instanceOfMyType
и управлять выходом для пользовательского типа. Из книги следует, что это можно сделать (стр. 93, "Общее структурное форматирование может быть расширено для работы с любыми определенными пользователем типами данных, тема, затронутая на веб-сайте F # "), но я не нашел ссылок на то, как это сделать. Кто-нибудь знает, как это возможно?
Edit:
Я должен был включить образец кода, это тип записи, с которым я имею дело, например
type myType =
{a: int}
override m.ToString() = "hello"
let t = {a=5}
printfn "%A" t
printfn "%A" (box t)
оба вывода print дают:
{a = 5;}