Команда Microsoft в своем блоге для разработчиков рассказала о выходе новой версии языка программирования F#. Ей соответствует версия SDK для компиляции 10.2. Поддержка F# 4.5 также добавлена в недавно опубликованную версию среды Visual Studio 2017 15.8.
Что нового в F# 4.5
- Поддержка типа
Span
, реализованного в .NET Core 2.1. Позволяет создавать более эффективный код и взаимодействовать с ним. - Введение правил безопасности при работе с конструкциями
ByRef
. Необходимо для ограничения контекста их использования и повышения предсказуемости результата. Разработчики напоминают, чтоSpan<'T>
иReadOnlySpan<'T>
также ограничены принятым набором правил. - Исправление ошибок, исключающее совместимость с кодом, написанным на F# версии 4.1:
- поддержка неявного разыменования возвратного значения
ByRef
; - замена указателя
this
наinref
в неизменяемых структурах для исключения ошибки их замещения при вызове.
- поддержка неявного разыменования возвратного значения
- Поддержка нового ключевого слова
match!
, позволяющего сократить некоторые часто используемые шаблоны.
// Code that returns an asynchronous option
let checkBananaAsync (s: string) =
async {
if s = "banana" then
return Some s
else
return None
}
// Now you can use 'match!'
let funcWithString (s: string) =
async {
match! checkBananaAsync s with
| Some bananaString -> printfn "It's banana!"
| None -> printfn "%s" s
}
- Послабления в требованиях приведения к базовому типу (
cast
) при работе сyield
в последовательностях, списках и массивах.
let x0 : obj list = [ "a" ] // ok pre-F# 4.5
let x1 : obj list = [ "a"; "b" ] // ok pre-F# 4.5
let x2 : obj list = [ yield "a" :> obj ] // ok pre-F# 4.5
let x3 : obj list = [ yield "a" ] // Now ok for F# 4.5, and can replace x2
- Послабления в правилах отступов при работе со списками и массивами.
module Test1 =
System.Console.WriteLine(format="{0}", arg = [|
"hello"
|])
System.Console.WriteLine([|
"hello"
|])
- Усовершенствованная трассировка стека при работе с
async
и дополнительные улучшения в модуле FSharp.Core.
Что нового в VS для F# 4.5
- Добавлена возможность автоматического закрытия для парных символов
""
,(**)
,()
,[]
,[||]
,{}
и[<>]
.
- Реализована функция Go to Definition — для этого необходимо кликнуть на объект с зажатой клавишей CTRL.
- Добавлена экспериментальная функция CodeLens для отражения сигнатур типов.
Помимо поддержки F# 4.5 версия Visual Studio 2017 15.8 также получила обновление инструментов для работы с Python, С++ и JavaScript. Кроме того, добавлен эмулятор Google Android, совместимый с аппаратным виртуализатором Hyper-V, для разработки мобильных приложений.
Источник: блог .NET