He leído un buen fragmento de Expert F # y estoy trabajando en la creación de una aplicación real. Durante la depuración, me he acostumbrado a pasar comandos FSI como este para hacer las cosas más legible en la ventana repl:¿Cómo personalizo la salida de un tipo personalizado usando printf?
fsi.AddPrinter(fun (x : myType) -> myType.ToString())
me gustaría extender esto a trabajar con el formateador printf, por lo que podría escribir, por ejemplo,
printf "%A" instanceOfMyType
y controla la salida para un tipo personalizado. El libro implica que esto se puede hacer (p 93, "El formato estructural genérico se puede ampliar para trabajar con cualquier tipo de datos definido por el usuario, , un tema cubierto en el sitio web de F #"), pero no he encontrado referencias sobre cómo lograr esto realmente ¿Alguien sabe cómo? ¿Es posible?
Editar:
debería haber incluido un ejemplo de código, que es un tipo de registro que estoy tratando con, por ejemplo,
type myType =
{a: int}
override m.ToString() = "hello"
let t = {a=5}
printfn "%A" t
printfn "%A" (box t)
ambas declaraciones de impresión Producción:
{a = 5;}
Por cierto, crédito a @Brian por publicar estos enlaces en un comentario de seguimiento a su respuesta. Solo pensé que valía la pena desarrollarse para cualquier otra persona que venga buscando. –