Справочник по языку F#
Эта статья представляет собой справочник по языку программирования F#, который поддерживает несколько парадигм и предназначен для платформы .NET. F# поддерживает функциональные, объектно-ориентированные и императивные модели программирования.
Упорядочение кода на F#
В следующей таблице приведены справочные статьи, связанные с упорядочиванием кода F#.
Заголовок | Описание |
---|---|
Пространства имен | Сведения о поддержке пространств имен в F#. С помощью пространства имен вы можете упорядочить код по областям соответствующей функциональности, подключив имя к группированию элементов программы. |
Модули | Дополнительные сведения о модулях Модуль F# подобен пространству имен и может также включать значения и функции. Код группирования в модулях объединяет связанный код и помогает избежать конфликтов имен в программе. |
open Объявления |
Сведения о том, как работает open . Объявление open указывает модуль, пространство имен или тип, на элементы которого можно ссылаться без использования полного имени. |
Сигнатуры | Сведения о сигнатурах и файлах сигнатур. В файле сигнатур содержатся сведения об открытых сигнатурах набора элементов программы на языке F#, таких как типы, пространства имен и модули. Файл сигнатур можно использовать для указания доступности этих элементов программы. |
Управление доступом | Сведения об управлении доступом в F#. Управление доступом означает объявление того, какие именно клиенты могут использовать определенные элементы программы, например типы, методы, функции и т. д. |
Документация XML | Узнайте о поддержке создания файлов документации из комментариев XML-документов, также называемых комментариями с тройной косой чертой. Документацию можно создавать из комментариев к коду в F#, так же как и в других языках .NET. |
Литералы и строки
В следующей таблице приведены справочные статьи, в которых описываются литералы и строки в F#.
Заголовок | Описание: |
---|---|
Литералы | Сведения о синтаксисе для литеральных значений в F# и способах указания сведений о типах для литералов F#. |
Строки | Сведения о строках в F#. Тип string представляет неизменяемый текст в виде последовательности символов Юникода. string является псевдонимом для System.String в .NET. |
Интерполированные строки | Сведения об интерполяции строк, специальной форме строки, которая позволяет внедрять выражения F# непосредственно внутри них. |
Значения и функции
В следующей таблице приведены справочные статьи, в которых описываются понятия языка, связанные со значениями, let
-привязками и функциями.
Заголовок | Описание: |
---|---|
Значения | Сведения о значениях, которые являются величинами, имеющими конкретный тип. Значения могут быть целыми числами или числами с плавающей запятой, символами или текстом, списками, последовательностями, массивами, кортежами, размеченными объединениями, записями, типами классов или значениями функции. |
Функции | Функции являются основным элементом выполнения программы на любом языке программирования. Функция F# имеет имя, может иметь параметры и принимать аргументы, а также имеет тело. F# также поддерживает конструкции функционального программирования, например, обработку функций как значений, использование неименованных функций в выражениях, объединение функций для образования новых функций, каррированные функции и неявное определение функций посредством частичного применения аргументов функции. |
Выражения функций | Сведения о том, как использовать ключевое слово F# "fun" для определения лямбда-выражения, которое является анонимной функцией. |
Циклы и условные выражения
В следующей таблице приведены статьи, в которых описываются циклы и условные выражения F#.
Заголовок | Описание: |
---|---|
Условные выражения: if...then...else |
Сведения о выражении if...then...else , которое выполняет различные ветви кода, а также дает разные значения при вычислении в зависимости от заданного логического выражения. |
Циклы: выражение for...in |
Сведения о выражении for...in — циклической конструкции, которая используется для итерации по совпадениям с шаблоном в перечислимой коллекции, такой как выражение диапазона, последовательность, список, массив или другая конструкция, поддерживающая перечисление. |
Циклы: выражение for...to |
Сведения о выражении for...to , которое используется для циклической итерации по диапазону значений переменной цикла. |
Циклы: выражение while...do |
Сведения о выражении while...do , используемом для итеративного выполнения (выполнения в цикле), пока заданное условие теста истинно. |
Сопоставление шаблонов
В следующей таблице приведены статьи, в которых описываются основные понятия языка.
Заголовок | Описание |
---|---|
Соответствие шаблону | Сведения о шаблонах, которые являются правилами для преобразования входных данных и используются во всем языке F#. Пользователь может сравнить данные с шаблоном, разбить данные на составляющие части или извлечь сведения из данных теми или иными способами. |
Выражения match | Сведения о выражении match , которое позволяет управлять ветвлением за счет сравнения выражения с набором шаблонов. |
Активные шаблоны | Сведения об активных шаблонах. Активные шаблоны позволяют определять именованные разделы, на которые подразделяются входные данные. Активные шаблоны можно использовать для разложения данных в настраиваемом порядке для каждого раздела. |
Обработка исключений
В следующей таблице приведены справочные статьи, в которых описываются понятия языка, связанные с обработкой исключений.
Заголовок | Описание |
---|---|
Обработка исключений | Содержит сведения о поддержке обработки исключений в F#. |
Выражение try...with |
Сведения об использовании выражения try...with для обработки исключений. |
Выражение try...finally |
Сведения, о том, как выражение F# try...finally позволяет выполнять код очистки, даже если блок кода создает исключение. |
Ключевое слово use |
Сведения о ключевых словах use и using , позволяющих управлять инициализацией и освобождением ресурсов. |
Проверочные утверждения | Сведения о выражении assert , являющимся функцией отладки, которую можно использовать для тестирования выражения. При сбое в режиме отладки утверждение создает диалоговое окно системной ошибки. |
Типы и вывод типов
В следующей таблице приведены справочные статьи, в которых описываются принципы работы типов и вывода типов в F#.
Заголовок | Описание |
---|---|
Типы | Сведения о типах, которые используются в F#, а также о способах их именования и описания. |
Базовые типы | Сведения об основных типах, используемых в F#. Кроме того, указывает соответствующие типы .NET и минимальное и максимальное значения для каждого из них. |
Тип Unit | Описывает тип unit , который указывает на отсутствие конкретного значения. Тип unit имеет только одно значение, которое выступает в качестве заполнителя, если другое значение не существует или не требуется. |
Сокращенные обозначения типов | Сведения о сокращенных формах типов, которые являются альтернативными именами типов. |
Вывод типа | Сведения о том, как компилятор F# определяет типы значений, переменных, параметров и возвращаемых значений. |
Приведение и преобразование | Сведения о поддержке для преобразований типов в F#. |
Универсальные шаблоны | Сведения об универсальных конструкциях в F#. |
Автоматическое обобщение | Сведения о том, как F# автоматически обобщает аргументы и типы функций, чтобы они работали с несколькими типами, когда это возможно. |
Ограничения | Сведения об ограничениях, применяемых к параметрам универсального типа для указания требований для аргумента типа в универсальном типе или функции. |
Гибкие типы | Сведения о гибких типах. Заметка с гибким типом указывает на то, что параметр, переменная или значение имеют тип, который совместим с указанным типом, где совместимость определяется положением в объектно ориентированной иерархии классов или интерфейсов. |
Единицы измерения | Сведения о единицах измерения. Значения с плавающей запятой в языке F# могут иметь связанные единицы измерения, которые обычно используются для указания длины, объема, массы и т. д. |
Byref | Сведения о типе ByRef и схожих с типах в F#, которые используются для низкоуровневого программирования. |
Кортежи, списки, коллекции, параметры
В следующей таблице приведены справочные статьи, в которых описываются типы, поддерживаемые F#.
Заголовок | Описание |
---|---|
Кортежи | Сведения о кортежах, представляющих собой группирования неименованных, но упорядоченных значений, которые могут иметь разные типы. |
Коллекции | Обзор типов функциональных коллекций F#, включая типы для массивов, списков, последовательностей (seq), карт и наборов. |
Списки | Сведения о списках. В языке F# список — это упорядоченная, неизменная серия элементов одного типа. |
Параметры | Сведения о типе параметра. Параметр в F# используется, когда значение может как существовать, так и не существовать. Параметр имеет базовый тип и может содержать значение этого типа либо не содержать никакого значения. |
Массивы | Сведения о массивах. Массивы — это изменяемые последовательности элементов данных одного типа, имеющие фиксированный размер и индексируемые с нуля. |
Последовательности | Сведения о последовательностях. Последовательность — это логический ряд элементов одного типа. Отдельные элементы последовательности вычисляются только при необходимости, поэтому представление может быть меньше указанного количества элементов литерала. |
Выражения последовательности | Сведения о выражениях последовательности, которые позволяют создавать последовательности данных по запросу. |
Ссылочные ячейки | Сведения о ссылочных ячейках, представляющие собой места хранения, которые позволяют создавать изменяющиеся переменные с семантикой ссылок. |
Записи и размеченные объединения
В следующей таблице приведены справочные статьи, в которых описываются определения типа записи и размеченного объединения, поддерживаемые F#.
Заголовок | Описание |
---|---|
Записи | Сведения о записях. Записи представляют собой простые агрегаты именованных значений, которые могут иметь элементы. |
Анонимные записи | Сведения о том, как создавать и использовать анонимные записи, представляющие собой языковую функцию, которая помогает управлять данными. |
Размеченные объединения | Сведения о размеченных объединениях, обеспечивающих поддержку значений, которые могут представлять один из множества именованных вариантов, каждый из которых может иметь разные значения и типы. |
Структуры | Сведения о структурах, представляющих собой компактный тип объекта, который может быть более эффективным, чем класс для типов, имеющих небольшое количество данных и простое поведение. |
Перечисления | Перечисления — это типы, имеющие определенный набор именованных значений. Их можно использовать вместо литералов, чтобы сделать код более понятным и простым в обслуживании. |
Объектно-ориентированное программирование
В следующей таблице приведены справочные статьи, в которых описывается объектно-ориентированное программирование на F#.
Заголовок | Описание |
---|---|
Классы | Сведения о классах, которые являются типами, представляющими объекты, которые могут иметь свойства, методы и события. |
Интерфейсы | Сведения об интерфейсах, которые определяют наборы связанных элементов, реализуемых другими классами. |
Абстрактные классы | Сведения об абстрактных классах, которые оставляют некоторые или все элементы нереализованными, чтобы реализации могли предоставляться производными классами. |
Расширения типов | Сведения о расширениях типов, которые позволяют добавлять новые элементы в ранее определенный тип объекта. |
Делегаты | Сведения о делегатах, которые представляют вызов функции в качестве объекта. |
Наследование | Сведения о наследовании, которое применяется для моделирования отношения "is-a" — подтипирования — в объектно-ориентированном программировании. |
Члены | Сведения об элементах типов объектов F#. |
Параметры и аргументы | Сведения о языковой поддержке для определения параметров и передачи аргументов в функции, методы и свойства. Содержит сведения о передаче по ссылке. |
Перегрузка операторов | Сведения о перегрузке арифметических операторов в классе или типе записи, а также на глобальном уровне. |
Выражения объекта | Сведения о выражениях объектов, формирующих новые экземпляры динамически создаваемого анонимного типа объекта, который основан на существующем базовом типе, интерфейсе или наборе интерфейсов. |
Выражения Async, Task и Lazy
В следующей таблице перечислены статьи, посвященные выражениям F# Async, Task и Lazy:
Заголовок | Описание |
---|---|
Асинхронные выражения | Сведения об асинхронных выражениях, которые позволяют писать асинхронный код практически аналогично синхронному. |
Выражения задач | Сведения о выражениях задач, которые являются альтернативным способом написания асинхронного кода, используемого при взаимодействии с кодом .NET, потребляющим или создающим задачи .NET. |
Отложенные выражения | Сведения об отложенных выражениях, которые выполняются не сразу, а только тогда, когда возникает потребность в результате. |
Вычислительные выражения и запросы
В следующей таблице перечислены статьи, посвященные вычислительным выражениям и запросам F#.
Заголовок | Описание |
---|---|
Выражения вычисления | Описывает выражения вычисления в F#, обеспечивающие удобный синтаксис для записи вычислений, которые можно упорядочивать и комбинировать с помощью привязок и конструкций потока управления. Их можно использовать для управления данными и побочными эффектами в функциональных программах. |
Выражения запросов | Сведения о выражениях запросов — функции языка, которая реализует LINQ для F# и позволяет составлять запросы к источнику данных или перечислимой коллекции. |
Атрибуты, отражение, цитирование и форматирование обычного текста
В следующей таблице приведены статьи, в которых описываются функции отражения F#, включая атрибуты, цитирования, nameof
и форматирование обычного текста.
Заголовок | Описание |
---|---|
Атрибуты | Сведения об атрибутах F#, позволяющих применять метаданные к программным конструкциям. |
nameof | Сведения об операторе nameof — функции метапрограммирование, которая позволяет создавать имя любого символа в исходном коде. |
Сведения о вызывающем объекте | Сведения об использовании атрибутов аргумента сведений вызывающей стороны для получения сведений о вызывающей стороне из метода. |
Идентификаторы Source Line, File и Path | Сведения об идентификаторах __LINE__ , __SOURCE_DIRECTORY__ и __SOURCE_FILE__ , представляющих собой встроенные значения, которые позволяют получить доступ к номеру исходной строки, каталогу и имени файла в коде. |
Цитирование кода | Сведения о цитировании кода — функции языка, позволяющей программно создавать выражения кода F# и работать с ними. |
Форматирование обычного текста | Узнайте, как использовать sprintf и другое форматирование обычного текста в приложениях и сценариях F#. |
Поставщики типов
В следующей таблице приведены статьи, в которых описываются поставщики типов F#.
Заголовок | Описание |
---|---|
Поставщики типов | Сведения о поставщиках типов и перейдите по ссылкам на пошаговые инструкции по использованию встроенных поставщиков типов для доступа к базам данных и веб-службам. |
Создание поставщика типов | Сведения о том, как создавать собственные поставщики типов F#, изучив несколько поставщиков простых типов, иллюстрирующих основные понятия. |
Справочник по API библиотеки F# Core
Справочник по API библиотеки F# Core (FSharp.Core) содержит справочные материалы по всем пространствам имен, модулям, типам и функциям библиотеки F# Core.
Ссылочные таблицы
Следующая таблица содержит справочные статьи, где приведены таблицы ключевых слов, символов и литералов, используемых в F# в качестве токенов.
Название | Описание: |
---|---|
Справочные сведения о ключевых словах | Содержит ссылки на сведения обо всех ключевых словах языка F#. |
Справочник символов и операторов | Содержит таблицу символов и операторов, которые используются в F#. |
Конструкции, поддерживаемые компилятором
Следующая таблица содержит список статей, где описаны специальные конструкции, поддерживаемые компилятором.
Раздел | Описание |
---|---|
Параметры компилятора | Описывает параметры командной строки для компилятора F#. |
Директивы компилятора | Сведения о директивах процессора и директивах компилятора, поддерживаемых компилятором F#. |