von lokalen Arten ich eine Art bedeuten zu haben, die nur zugänglich innerhalb einer bestimmten Funktion istIst es möglich, lokale Typen in F #
Zum Beispiel können sagen, dass ich einige Daten nehmen wollen, formatieren und serialisiert sie json .
let parse data = // hypothetical scenario
type Record = { root : string[] }
let record = { root = data }
JsonConvert.SerializeObject record
Es scheint, da die Art nirgendwo sonst benötigt wird, dies sollte funktionieren. Allerdings bekomme ich Kompilierfehler, wenn ich dies schreibe.
Gibt es eine Möglichkeit, ähnliche Funktionen in F # zu erhalten?
Objektausdrücke - https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/object-expressions-%5Bfsharp%5D sind ähnlich –
@JohnPalmer Sind diese nicht anonym, obwohl? Verlierst du nicht die Fähigkeit für einige polymorphe Sachen, wenn du das verwendest? – t3dodson
Sie können 'private' Zugriffsmodifizierer verwenden, so dass auf Ihren Typ nur vom umgebenden Modul aus zugegriffen werden kann. – bytebuster