Novità di F# 4.6
F# 4.6 aggiunge più miglioramenti al linguaggio F#.
Operazioni preliminari
F# 4.6 è disponibile in tutte le distribuzioni di .NET Core e gli strumenti di Visual Studio. Introduzione a F# per altre informazioni.
Record anonimi
I record anonimi sono un nuovo tipo di tipo F# introdotto in F# 4.6. Si tratta di semplici aggregazioni di valori denominati che non devono essere dichiarati prima dell'uso. È possibile dichiararli come struct o tipi di riferimento. Sono tipi di riferimento per impostazione predefinita.
open System
let getCircleStats radius =
let d = radius * 2.0
let a = Math.PI * (radius ** 2.0)
let c = 2.0 * Math.PI * radius
{| Diameter = d; Area = a; Circumference = c |}
let r = 2.0
let stats = getCircleStats r
printfn "Circle with radius: %f has diameter %f, area %f, and circumference %f"
r stats.Diameter stats.Area stats.Circumference
Possono anche essere dichiarati come struct per quando si desidera raggruppare i tipi di valore e operano in scenari sensibili alle prestazioni:
open System
let getCircleStats radius =
let d = radius * 2.0
let a = Math.PI * (radius ** 2.0)
let c = 2.0 * Math.PI * radius
struct {| Diameter = d; Area = a; Circumference = c |}
let r = 2.0
let stats = getCircleStats r
printfn "Circle with radius: %f has diameter %f, area %f, and circumference %f"
r stats.Diameter stats.Area stats.Circumference
Sono molto potenti e possono essere usati in numerosi scenari. Per altre informazioni, vedere Record anonimi.
Funzioni ValueOption
Il tipo ValueOption aggiunto in F# 4.5 ora ha "parità di funzione associata a modulo" con il tipo di opzione. Di seguito sono riportati alcuni degli esempi più comunemente usati:
// Multiply a value option by 2 if it has value
let xOpt = ValueSome 99
let result = xOpt |> ValueOption.map (fun v -> v * 2)
// Reverse a string if it exists
let strOpt = ValueSome "Mirror image"
let reverse (str: string) =
match str with
| null
| "" -> ValueNone
| s ->
str.ToCharArray()
|> Array.rev
|> string
|> ValueSome
let reversedString = strOpt |> ValueOption.bind reverse
Ciò consente l'uso di ValueOption proprio come Opzione negli scenari in cui il tipo di valore migliora le prestazioni.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per