Pregunta

Tengo una estructura C# simple que quiero consumir desde F#:

public struct Stat : IEquatable<Stat>
{
    public ulong st_dev;
    public long st_blocks;
}

La forma que encontré para hacerlo me parece demasiado C# y mutable:

stbuf <- new Stat()
stbuf.st_blocks <- 0
stbuf.st_dev <- 1

Sin mencionar que en C# me vendría bien el bonito new Stat { st_blocks = 0, st_dev = 1 } azúcar de sintaxis...

Ahora que me estoy convirtiendo a F#, estoy empezando a ser alérgico al operador de asignación. <-, Entonces, ¿hay alguna forma de mejorar esto?

¿Fue útil?

Solución

Hay una sintaxis para establecer propiedades o campos mutables en el constructor:

stbuf <- Stat(st_blocks = 0L, st_dev = 1UL)

Tenga en cuenta que no necesita el new en F# excepto que generalmente se recomienda en IDisposable cosas.Tenga en cuenta también los sufijos necesarios para especificar literales de los tipos apropiados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top