Поделиться через


Справочник по языку F#

Этот раздел представляет собой справочник по языку F#, языку программирования с поддержкой множества парадигм, предназначенному для платформы .NET.Язык F# поддерживает модели функционального, объектно-ориентированного и императивного программирования.

Токены языка F#

В следующей таблице указаны справочные разделы, в которых приведены таблицы ключевых слов, символов и литералов, используемых в качестве токенов в F#.

Заголовок

Описание

Справочные сведения о ключевых словах (F#)

Приведены ссылки на сведения о всех ключевых словах языка F#.

Справочник символов и операторов (F#)

Представлена таблица символов и операторов, используемых в языке F#.

Литералы (F#)

Описываются синтаксис значений литералов в языке F# и способы указания сведений о типах для литералов F#.

Концепции языка F#

В следующей таблице перечислены доступные справочные разделы, в которых описываются концепции языка.

Заголовок

Описание

Функции (F#)

Функции — это основной элемент выполнения программы в любом языке программирования.Как и в других языках, функция в языке F# имеет имя, может иметь параметры и принимать аргументы, а также функция имеет тело.Язык F# также поддерживает конструкции функционального программирования, например обработку функций как значений, использование в выражениях неименованных функций, объединение функций для образования новых функций, каррированные функции и неявное определение функций посредством частичного применения аргументов функции.

Типы языка F#

Описываются типы, используемые в языке F#, и правила их именования и описания.

Вывод типа (F#)

Описывается, как компилятор F# делает вывод о типах значений, переменных, параметров и возвращаемых значений.

Автоматическое обобщение (F#)

Описываются общие конструкции в языке F#.

Наследование (F#)

Описывается наследование, используемое для моделирования отношения "is-a" или подтипов в объектно-ориентированном программировании.

Члены (F#)

Описываются члены типов объектов языка F#.

Параметры и аргументы (F#)

Описывается поддержка языком определения параметров и передачи аргументов в функции, методы и свойства.Приводятся сведения о передаче по ссылке.

Перегрузка операторов (F#)

Описывается перегрузка арифметических операторов в классе или типе записи, а также на глобальном уровне.

Приведение и преобразование (F#)

Описывается поддержка преобразований типов в языке F#.

Управление доступом (F#)

Описывается управление доступом в языке F#.Под управление доступом понимается объявление клиентов, которые могут использовать определенные элементы программы, например типы, методы, функции и т. д.

Сопоставление шаблонов (F#)

Описываются шаблоны, представляющие собой правила преобразования входных данных, которые используются во всем языке F# для сравнения данных с шаблоном, разложения данных на составные части или извлечения информации из данных различными способами.

Активные шаблоны (F#)

Описываются активные шаблоны.Активные шаблоны позволяют определять именованные разделы, с помощью которых подразделяются входные данные.Активные шаблоны можно использовать для разложения данных на составные части настраиваемым способом для каждого раздела.

Проверочные утверждения (F#)

Описывается выражение assert, представляющее собой функцию отладки, которую можно использовать для тестирования выражения.В случае отрицательного результата тестирования в режиме отладки утверждение создает системное диалоговое окно ошибки.

Обработка исключений (F#)

Приводятся сведения о поддержке обработки исключений в языке F#.

Атрибуты (F#)

Описываются атрибуты, позволяющие применять метаданные к конструкции программирования.

Управление ресурсами: ключевое слово use (F#)

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

Пространства имен (F#)

Описывается поддержка пространств имен в языке F#.Пространство имен предоставляет возможность организовать код в области связанной функциональности, позволяя присоединить имя к группе элементов программы.

Модули (F#)

Описываются модули.Модуль F# — это группирование кода F#, например значений, типов и значений функций, в программе на языке F#.Группирование кода в модулях помогает не разрывать связанный код и избегать конфликтов имен в программе.

Объявления импорта: ключевое слово open (F#)

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

Сигнатуры (F#)

Описываются сигнатуры и файлы сигнатур.В файле сигнатур содержатся сведения об открытых сигнатурах ряда элементов программы на языке F#, таких как типы, пространства имен и модули.Файл сигнатур можно использовать для указания доступности этих элементов программы.

Документация XML (F#)

Описывается поддержка создания файлов документации для комментариев в XML-документах, называемых также комментариями с тремя символами косой черты.Можно создать документацию из комментариев кода в языке F# точно так же, как в других языках платформы .NET.

Подробный синтаксис (F#)

Описывается синтаксис конструкций F#, когда упрощенный синтаксис не разрешается.На подробный синтаксис указывает директива #light "off" в верхней части файла кода.

Типы языка F#

В следующей таблице перечислены доступные справочные разделы, в которых описываются типы, поддерживаемые языком F#.

Заголовок

Описание

Значения (F#)

Описываются значения, являющиеся постоянными величинами, которые имеют конкретный тип; значениями могут быть целые числа или числа с плавающей запятой, знаки или текст, списки, последовательности, массивы, кортежи, размеченные объединения, записи, типы классов или значения функций.

Типы-примитивы (F#)

Описываются основные простые типы, используемые в языке F#.Указываются также соответствующие типы .NET и минимальное и максимальное значения для каждого типа.

Тип Unit (F#)

Описывается тип unit, который указывает на отсутствие конкретного значения; тип unit имеет единственное значение, которое выступает в качестве заполнителя, когда не существует другого значения или оно не требуется.

Строки (F#)

Описываются строки в языке F#.Тип string представляет постоянный текст в виде последовательности символов Юникода.Тип string — это псевдоним для типа String платформы .NET Framework.

Кортежи (F#)

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

Типы коллекций F#

Общие сведения о F# работы коллекции типов, включая типы массивов, списки, последовательности (seq), карты и наборы.

Списки (F#)

Описываются списки.Список в языке F# — это упорядоченный, неизменный ряд элементов одного типа.

Параметры (F#)

Описывается тип option.Тип option в языке F# используется, если значение может существовать или не существовать.Параметр типа option имеет базовый тип и может иметь значение этого типа или не иметь значения.

Последовательности (F#)

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

Массивы (F#)

Описываются массивы.Массивы — это начинающиеся с нулевого индекса изменяемые последовательности элементов данных одного типа.

Записи (F#)

Описываются записи.Записи представляют простые агрегаты именованных значений, дополнительно с членами.

Размеченные объединения (F#)

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

Перечисления (F#)

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

Ссылочные ячейки (F#)

Описываются ссылочные ячейки. Это места хранения, которые позволяют создавать изменяющиеся переменные с семантикой ссылок.

Аббревиатуры типов (F#)

Описываются аббревиатуры типов, представляющие собой переменные имена для типов.

Классы (F#)

Описываются классы. Классы — это типы, представляющие объекты, которые могут иметь свойства, методы и события.

Структуры (F#)

Описываются структуры, представляющие собой компактные типы объектов, которые могут быть более эффективными, чем класс, для типов, имеющих небольшое количество данных и простое поведение.

Интерфейсы (F#)

Описываются интерфейсы, определяющие наборы связанных членов, которые реализуются другими классами.

Абстрактные классы (F#)

Описываются абстрактные классы, т. е. классы, которые оставляют некоторые или все члены нереализованными, в результате чего реализации могут быть обеспечены производными классами.

Расширения типов (F#)

Описываются расширения типов, которые позволяют добавлять новые члены в ранее определенный тип объекта.

Гибкие типы (F#)

Описываются гибкие типы.Заметка гибкого типа — это указание о том, что параметр, переменная или значение имеет тип, совместимый с указанным типом; совместимость определяется позицией в объектно-ориентированной иерархии классов или интерфейсов.

Делегаты (F#)

Описываются делегаты, которые представляют вызов функции в качестве объекта.

Единицы измерения (F#)

Описываются единицы измерения.Со значениями с плавающей запятой в языке F# могут быть связаны единицы измерения, которые обычно используются для указания длины, объема, массы и т. д.

Поставщики типов

Описание типа предоставляет и предоставляет ссылки на пошаговые руководства по использованию поставщики встроенных типов доступа к базам данных и веб-служб.

Выражения языка F#

В следующей таблице перечислены разделы, в которых описываются выражения языка F#.

Заголовок

Описание

Условные выражения. if... then...else (F#)

Описывается выражение if...then...else, которое обеспечивает выполнение различных ветвей кода, а также оценивает разные значения в зависимости от заданного логического выражения.

Выражения match (F#)

Описывается выражение match, обеспечивающее управление ветвлением, которое осуществляется на основе сравнения выражения с рядом шаблонов.

Циклы. Выражение for...to (F#)

Описывается выражение for...to, используемое для выполнения итерации в цикле в пределах диапазона значений переменной цикла.

Циклы: выражение for...in (F#)

Описывается выражение for...in, представляющее собой конструкцию для организации циклов, которая используется для выполнения итерации при соответствиях шаблона в перечислимой коллекции, например в выражении диапазона, в последовательности, списке, массиве или другой конструкции, поддерживающей перечисление.

Циклы: выражение while...do (F#)

Описывается выражение while...do, используемое для выполнения итерации (в цикле), пока заданное условие теста истинно.

Выражения объекта (F#)

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

Отложенные вычисления (F#)

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

Выражения вычисления (F#)

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

Асинхронные рабочие потоки (F#)

Описываются асинхронные рабочие потоки — функция языка, позволяющая писать асинхронный код почти таким же образом, как обычно пишется синхронный код.

Цитирование кода (F#)

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

Выражения запросов (F#)

Описание компонента языка, который реализует LINQ для F# и позволяет создавать запросы к источнику данных или перечисляемая коллекция выражений запроса.

Конструкции, поддерживаемые компилятором

В следующей таблице перечислены разделы, в которых описываются специальные конструкции, поддерживаемые компилятором.

Раздел

Описание

Директивы компилятора (F#)

Описываются директивы процессора и директивы компилятора.

Идентификаторы Source Line, File и Path (F#)

Описываются идентификаторы __LINE__, __SOURCE_DIRECTORY__ и __SOURCE_FILE__, представляющие собой встроенные значения, которые позволяют получать доступ к строке источника с определенным номером, каталогу и файлу с определенным именем в коде.

См. также

Другие ресурсы

Visual F#

Ссылка на компилятор F# (fsc.exe)