Novinky v F# 4.6
Jazyk F# 4.6 přidává několik vylepšení jazyka F#.
Začínáme
F# 4.6 je k dispozici ve všech distribucích .NET Core a nástrojích sady Visual Studio. Začněte s jazykem F# a získejte další informace.
Anonymní záznamy
Anonymní záznamy představují nový typ F# zavedený v jazyce F# 4.6. Jedná se o jednoduché agregace pojmenovaných hodnot, které před použitím nemusí být deklarovány. Můžete je deklarovat jako struktury nebo odkazové typy. Ve výchozím nastavení se jedná o odkazové typy.
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
Dají se také deklarovat jako struktury pro případy, kdy chcete seskupit typy hodnot a pracují ve scénářích citlivých na výkon:
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
Jsou poměrně výkonné a lze je použít v mnoha scénářích. Další informace najdete v anonymních záznamech.
Funkce ValueOption
Typ ValueOption přidaný v jazyce F# 4.5 má nyní paritu funkce vázané na modul s typem Option. Některé běžně používané příklady jsou následující:
// 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
To umožňuje použití ValueOption stejně jako option ve scénářích, kdy typ hodnoty zlepšuje výkon.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro