Новые возможности F# 4.6
F# 4.6 добавляет несколько улучшений на язык F#.
Начать
F# 4.6 доступен во всех дистрибутивах .NET Core и инструментах Visual Studio. Приступая к работе с F# , чтобы узнать больше.
Анонимные записи
Анонимные записи — это новый тип F#, представленный в F# 4.6. Они представляют собой простые агрегаты именованных значений, которые не нужно объявлять перед использованием. Их можно объявить как структуры или ссылочные типы. По умолчанию они ссылаются на типы.
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
Они также могут быть объявлены как структуры, когда требуется группировать типы значений и работают в сценариях с учетом производительности:
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
Они довольно мощны и могут использоваться в многочисленных сценариях. Дополнительные сведения см. в анонимных записях.
Функции ValueOption
Тип ValueOption, добавленный в F# 4.5, теперь имеет "четность функций, привязанных к модулю" с типом Option. Ниже приведены некоторые из наиболее распространенных примеров.
// 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
Это позволяет использовать ValueOption так же, как и параметр в сценариях, когда тип значения повышает производительность.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по