Nyheter i F# 4.6
F# 4.6 lägger till flera förbättringar av F#-språket.
Kom igång
F# 4.6 finns i alla .NET Core-distributioner och Visual Studio-verktyg. Kom igång med F# om du vill veta mer.
Anonyma poster
Anonyma poster är en ny typ av F#-typ som introduceras i F# 4.6. De är enkla aggregeringar av namngivna värden som inte behöver deklareras före användning. Du kan deklarera dem som antingen structs eller referenstyper. De är referenstyper som standard.
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
De kan också deklareras som structs för när du vill gruppera värdetyper och fungerar i prestandakänsliga scenarier:
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
De är ganska kraftfulla och kan användas i många scenarier. Läs mer i Anonyma poster.
ValueOption-funktioner
ValueOption-typen som lades till i F# 4.5 har nu "modulbunden funktionsparitet" med alternativtypen. Några av de vanligaste exemplen är följande:
// 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
Detta gör att ValueOption kan användas precis som Alternativet i scenarier där en värdetyp förbättrar prestandan.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för