Начало работы с F# в Visual Studio для Mac

Внимание

Корпорация Майкрософт объявила о прекращении работы Visual Studio для Mac. Visual Studio для Mac больше не будет поддерживаться с 31 августа 2024 г. Ниже представлены возможные альтернативы.

  • Visual Studio Code с пакетом разработки C# и связанными расширениями, такими как .NET MAUI и Unity.
  • Visual Studio, запущенная в Windows на виртуальной машине Mac.
  • Visual Studio, запущенная в Windows на виртуальной машине в облаке.

Дополнительные сведения см. в Visual Studio для Mac объявлении о выходе на пенсию.

F# поддерживается в интегрированной среде разработки Visual Studio для Mac. Убедитесь, что вы установили Visual Studio для Mac.

Создание консольного приложения

Одним из самых простых проектов в Visual Studio для Mac является консольное приложение. Вот как это делается. После открытия Visual Studio для Mac:

  1. В меню "Файл" наведите указатель на новое решение.

  2. В диалоговом окне "Новый проект" есть 2 различных шаблона для консольного приложения. Существует один из разделов Other —> .NET, предназначенный для платформа .NET Framework. Другой шаблон находится в .NET Core —> приложение, которое предназначено для .NET Core. Любой шаблон должен работать в целях этой статьи.

  3. В консоли приложения при необходимости измените C# на F#. Нажмите кнопку "Далее", чтобы перейти вперед!

  4. Присвойте проекту имя и выберите нужные параметры для приложения. Обратите внимание, что панель предварительного просмотра на стороне экрана, в которую будет отображаться структура каталогов, которая будет создана на основе выбранных параметров.

  5. Нажмите кнопку Создать. Теперь в Обозреватель решений должен появиться проект F#.

Написание кода

Начнем с написания кода. Убедитесь, что Program.fs файл открыт, а затем замените его содержимое следующим образом:

module HelloSquare

let square x = x * x

[<EntryPoint>]
let main argv =
    printfn "%d squared is: %d!" 12 (square 12)
    0 // Return an integer exit code

В предыдущем примере кода была определена функция square , которая принимает входные данные с именем x и умножает его самостоятельно. Так как F# использует вывод типов, тип x не требуется указывать. Компилятор F# понимает типы, в которых допустимо умножение, и назначит тип на x основе square вызываемого метода. Если наведите указатель мыши square, вы увидите следующее:

val square: x:int -> int

Это то, что называется сигнатурой типа функции. Его можно прочитать следующим образом: "Квадрат является функцией, которая принимает целое число x и создает целое число". Обратите внимание, что компилятор дал squareint тип сейчас - это связано с тем, что умножение не является универсальным для всех типов, а является универсальным для закрытого набора типов. Компилятор F#, выбранный int на этом этапе, но при вызове square с другим типом входных данных, например floatсигнатурой типа.

Другая функция, mainопределяется, которая украшена EntryPoint атрибутом, чтобы сообщить компилятору F# о том, что выполнение программы должно начаться там. Он соответствует тому же соглашению, что и другие языки программирования в стиле C, где аргументы командной строки можно передавать в эту функцию, и возвращается целый код (обычно 0).

В этой функции мы вызываем square функцию с аргументом 12. Затем компилятор F# назначает тип square должен быть int -> int (т. е. функция, которая принимает int и создает объект int). Вызов printfn представляет собой отформатированную функцию печати, которая использует строку форматирования, аналогичную языкам программирования в стиле C, параметрам, соответствующим указанным в строке формата, а затем выводит результат и новую строку.

Выполнение кода

Вы можете запустить код и просмотреть результаты, нажав кнопку "Выполнить " в меню верхнего уровня, а затем запустить без отладки. Это приведет к запуску программы без отладки и позволяет просматривать результаты.

Теперь вы увидите следующее в окне консоли, которое Visual Studio для Mac появилось:

12 squared is 144!

Поздравляем! Вы создали первый проект F# в Visual Studio для Mac, написав функцию F#, распечатали результаты вызова этой функции и запустите проект, чтобы увидеть некоторые результаты.

Использование интерактивного F#

Одним из лучших функций инструментов F# в Visual Studio для Mac является интерактивное окно F#. Он позволяет отправлять код в процесс, где можно вызывать этот код и просматривать результат в интерактивном режиме.

Чтобы начать использовать его, выделите функцию, определенную square в коде. Затем щелкните "Изменить " в меню верхнего уровня. Затем выберите "Отправить выбор в F# Interactive". Это выполняет код в интерактивном окне F#. Кроме того, можно щелкнуть правой кнопкой мыши выбор и выбрать команду "Отправить" в F# Interactive. В нем появится интерактивное окно F# со следующими параметрами:

>

val square: x: int -> int

>

В этом примере показана та же подпись функции для square функции, которую вы видели ранее при наведении указателя мыши на функцию. Так как square теперь определен в интерактивном процессе F#, его можно вызвать с различными значениями:

> square 12;;
val it: int = 144
> square 13;;
val it: int = 169

Это выполняет функцию, привязывает результат к новому имени itи отображает тип и значение it. Обратите внимание, что необходимо завершить каждую строку с ;;. Это то, как F# Interactive знает, когда завершится вызов функции. Вы также можете определить новые функции в F# Interactive:

> let isOdd x = x % 2 <> 0;;

val isOdd: x: int -> bool

> isOdd 12;;
val it: bool = false

В приведенном выше примере определяется новая функция, isOddкоторая принимает int и проверка, чтобы узнать, является ли она нечетной! Эту функцию можно вызвать, чтобы увидеть, что возвращается с различными входными данными. Функции можно вызывать в вызовах функций:

> isOdd (square 15);;
val it: bool = true

Можно также использовать оператор конвейера пересылки для конвейера значения в две функции:

> 15 |> square |> isOdd;;
val it: bool = true

Оператор пересылки каналов и многое другое рассматриваются в последующих руководствах.

Это лишь представление о том, что можно сделать с помощью F# Interactive. Дополнительные сведения см. в проверка интерактивного программирования с помощью F#.

Следующие шаги

Если вы еще не сделали этого, проверка тур F#, который охватывает некоторые основные функции F#. В нем представлен обзор некоторых возможностей F#, а также достаточно примеров кода, которые можно скопировать в Visual Studio для Mac и запустить. Существуют также некоторые отличные внешние ресурсы, которые можно использовать, показанные в руководстве по F#.

См. также