Пространство имен Microsoft.FSharp.Core (F#)

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

Пространство имен/путь к модулю: Microsoft.FSharp.Core

Сборка: FSharp.Core (в FSharp.Core.dll)

namespace Microsoft.FSharp.Core

Модули

Модуль

Описание

Модуль ExtraTopLevelOperators

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

Модуль LanguagePrimitives

Языковые примитивы, связанные с языком F#.

Модуль NumericLiterals

Предоставляет реализации по умолчанию синтаксиса числовых литералов F# для формы "dddI".

Модуль Operators

Основные операторы F#. Этот модуль автоматически открывается во всем коде F#.

Модуль OptimizedClosures

Модуль реализации, в котором содержатся частные реализации вызова функции.

Модуль Option

Основные операции над параметрами.

Модуль Printf

Расширенное форматирование в стиле printf для чисел и других типов данных

Модуль String

Операторы функционального программирования для обработки строк. Другие операции со строками осуществляются с помощью строковых функций-членов и других функций в типах String и Regex.

Определения типов

Тип

Описание

Тип [,,,]<'T>

Четырехмерные массивы, индексация которых, как правило, ведется с нуля. Массивы, индексация которых начинается не с нуля, могут создаваться с помощью методов типа System.Array.

Тип [,,]<'T>

Трехмерные массивы, индексация которых, как правило, ведется с нуля. Массивы, индексация которых начинается не с нуля, могут создаваться с помощью методов типа System.Array.

Тип [,]<'T>

Двумерные массивы, индексация которых, как правило, ведется с нуля.

Тип []<'T>

Одномерные массивы с индексацией от нуля, которые описываются с помощью int[], string[] и т. п.

Тип AbstractClassAttribute

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

Тип AllowNullLiteralAttribute

При добавлении этого атрибута в класс разрешается использование литерала "null" для этого типа в коде F#. Этот атрибут можно добавить только к определенному классу или типу интерфейса F#.

Тип AutoOpenAttribute

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

Тип AutoSerializableAttribute

При добавлении к типу этого атрибута со значением false данный тип перестает быть сериализуемым по умолчанию в среде F#.

Тип byref<'T>

Представляет управляемый указатель в коде F#.

Тип Choice<'T1,'T2,'T3,'T4,'T5,'T6,'T7>

Вспомогательные типы для активных шаблонов с 7 вариантами выбора.

Тип Choice<'T1,'T2,'T3,'T4,'T5,'T6>

Вспомогательные типы для активных шаблонов с 6 вариантами выбора.

Тип Choice<'T1,'T2,'T3,'T4,'T5>

Вспомогательные типы для активных шаблонов с 5 вариантами выбора.

Тип Choice<'T1,'T2,'T3,'T4>

Вспомогательные типы для активных шаблонов с 4 вариантами выбора.

Тип Choice<'T1,'T2,'T3>

Вспомогательные типы для активных шаблонов с 3 вариантами выбора.

Тип Choice<'T1,'T2>

Вспомогательные типы для активных шаблонов с 2 вариантами выбора.

Тип ClassAttribute

Добавление данного атрибута к типу приводит к представлению этого типа посредством класса CLI.

Тип CLIEventAttribute

При добавлении этого атрибута к свойству с типом события свойство компилируется как событие метаданных инфраструктуры CLI с помощью синтаксического преобразования в пару методов add_EventName и remove_EventName.

Тип ComparisonConditionalOnAttribute

Данный атрибут используется для обозначения типа универсального контейнера и удовлетворяет ограничению F# comparison только в том случае, если универсальный аргумент также удовлетворяет этому ограничению. Например, добавление этого атрибута к параметру 'T при определении типа C<'T> означает, что тип C<X> поддерживает только сравнение, если тип X также поддерживает сравнение и все остальные условия поддержки сравнения C<X> также соблюдены. Тип C<'T> можно использовать и с другими аргументами типов, но такой тип, как C<(int -> int)>, не будет поддерживать сравнение, поскольку тип (int -> int) представляет собой тип функции F# и не поддерживает сравнение.

Тип CompilationArgumentCountsAttribute

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

Тип CompilationMappingAttribute

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

Тип CompilationRepresentationAttribute

Этот атрибут используется для настройки представления типа в среде выполнения. Например, его можно применять для обозначения того, что для типа может использоваться представление значения null. Это влияет на способ компиляции некоторых конструкций.

Тип CompilationRepresentationFlags

Обозначает одно или несколько изменений скомпилированного представления типа или члена F#.

Тип CompilationSourceNameAttribute

Этот атрибут автоматически создается компилятором F# для отметки методов с атрибутом CompiledName. Он не предназначен для прямого использования в пользовательском коде.

Тип CompiledNameAttribute

При добавлении этого атрибута в значение или определении функции в модуле F# изменяется имя значения в скомпилированном коде CLI.

Тип CompilerMessageAttribute

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

Тип CustomComparisonAttribute

Добавление этого атрибута к типу обозначает, что это тип с пользовательской реализацией сравнения.

Тип CustomEqualityAttribute

Добавление этого атрибута к типу обозначает, что это тип с пользовательской реализацией равенства.

Тип decimal<'Measure>

Тип десятичных чисел, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Decimal.

Тип DefaultAugmentationAttribute

При добавлении этого атрибута в размеченное объединение со значением false отключается создание стандартного тестировщика вспомогательного метода, конструктора и методов доступа для созданного класса CLI данного типа.

Тип DefaultValueAttribute

При добавлении этого атрибута в объявление поля оно не инициализируется. Во время проверки типов применяется ограничение: тип поля поддерживает значение NULL. Если значение check равно false, то ограничение не используется.

Тип EntryPointAttribute

Добавление этого атрибута к функции обозначает, что это точка входа для приложения. Если он отсутствует или не указан для EXE-файла, то в качестве точки входа используется явная функция инициализации в привязках модуля последнего файла последовательности компиляции.

Тип EqualityConditionalOnAttribute

Данный атрибут используется для обозначения типа универсального контейнера и удовлетворяет ограничению F# equality только в том случае, если универсальный аргумент также удовлетворяет этому ограничению. Например, добавление этого атрибута к параметру 'T при определении типа C<'T> означает, что тип C<X> поддерживает только равенство, если тип X также поддерживает равенство и все остальные условия поддержки равенства C<X> также соблюдены. Тип C<'T> можно использовать и с другими аргументами типов, но такой тип, как C<(int -> int)>, не будет поддерживать равенство, поскольку тип (int -> int) представляет собой тип функции F# и не поддерживает равенство.

Тип ExperimentalAttribute

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

Тип float<'Measure>

Тип чисел с плавающей точкой, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Double.

Тип float32<'Measure>

Тип чисел с плавающей точкой, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Single.

Тип FSharpFunc<'T,'U>

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

Тип FSharpInterfaceDataVersionAttribute

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

Тип FSharpTypeFunc

Тип CLI, используемый для представления значений функции первого класса F#. Этот тип предназначен для использования скомпилированным кодом F#.

Тип FuncConvert

Вспомогательные функции для преобразования значений функций первого класса F# в представления функций CLI с использованием делегатов и обратно.

Тип GeneralizableValueAttribute

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

Тип ilsigptr<'T>

Этот тип предназначен для внутреннего использования компилятором кода F#.

Тип int<'Measure>

Тип 32-разрядных целых чисел со знаком, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Int32.

Тип int16<'Measure>

Тип 16-разрядных целых чисел со знаком, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Int16.

Тип int64<'Measure>

Тип 64-разрядных целых чисел со знаком, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.Int64.

Тип InterfaceAttribute

Добавление данного атрибута к типу приводит к представлению этого типа посредством интерфейса CLI.

Тип LiteralAttribute

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

Тип MeasureAnnotatedAbbreviationAttribute

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

Тип MeasureAttribute

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

Тип nativeptr<'T>

Представляет неуправляемый указатель в коде F#.

Тип NoComparisonAttribute

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

Тип NoDynamicInvocationAttribute

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

Тип NoEqualityAttribute

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

Тип Option<'T>

Тип необязательных значений. При использовании из других языков инфраструктуры CLI пустой параметр имеет значение null.

Тип OptionalArgumentAttribute

Данный атрибут автоматически добавляется ко всем необязательным аргументам.

Тип PrintfFormat<'Printer,'State,'Residue,'Result,'Tuple>

Тип выражения форматирования.

Тип PrintfFormat<'Printer,'State,'Residue,'Result>

Тип выражения форматирования.

Тип Ref<'T>

Тип изменяемых ссылок. Используйте функции [:=] и [!], чтобы получить и задать значения этого типа.

Тип ReferenceEqualityAttribute

При добавлении этого атрибута в запись или объединение отключается автоматическое создание перегруженных вариантов System.Object.Equals(obj), System.Object.GetHashCode() и System.IComparable для данного типа. По умолчанию тип будет использовать ссылочное равенство.

Тип ReflectedDefinitionAttribute

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

Тип RequireQualifiedAccessAttribute

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

Тип RequiresExplicitTypeArgumentsAttribute

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

Тип sbyte<'Measure>

Тип 8-разрядных целых чисел со знаком, для которых указана единица измерения. Единица измерения удаляется из скомпилированного кода и при анализе значений данного типа с использованием отражения. Данный тип является эквивалентным представлением типа System.SByte.

Тип SealedAttribute

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

Тип SourceConstructFlags

Указывает связь скомпилированной сущности в двоичном файле CLI и элемента в исходном коде F#.

Тип StructAttribute

Добавление данного атрибута к типу приводит к представлению этого типа посредством структуры CLI.

Тип StructuralComparisonAttribute

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

Тип StructuralEqualityAttribute

При добавлении этого атрибута в тип записи, объединения или структуры подтверждается автоматическое создание перегруженных вариантов System.Object.Equals(obj) и System.Object.GetHashCode() для данного типа.

Тип StructuredFormatDisplayAttribute

Данный атрибут применяется для отметки способа отображения типа по умолчанию при использовании шаблонов форматирования %A printf и других двухмерных текстовых форматов вывода значений. В данной версии F# допустимы только значения в форме PreText {PropertyName} PostText. Имя свойства обозначает свойство, подлежащее вычислению и отображению вместо самого объекта.

Тип Unit

Тип "unit", для которого предусмотрено только одно значение — "()". Это значение является особым и всегда использует представление значения NULL.

Тип UnverifiableAttribute

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

Тип VolatileFieldAttribute

Добавление этого атрибута к изменяемой привязке F# приводит к применению префикса volatile ко всем случаям доступа к полю.

Сокращенные обозначения типов

Тип

Описание

Тип array<'T>

Одномерные массивы с индексацией от нуля, которые описываются с помощью int[], string[] и т. п.

Тип bigint

Целые произвольно большой длины. Сокращенное обозначение типа BigInteger.

Тип bool

Сокращенное обозначение типа Boolean инфраструктуры CLI.

Тип byte

Сокращенное обозначение типа Byte инфраструктуры CLI.

Тип char

Сокращенное обозначение типа Char инфраструктуры CLI.

Тип decimal

Сокращенное обозначение типа Decimal инфраструктуры CLI.

Тип double

Сокращенное обозначение типа Double инфраструктуры CLI.

Тип exn

Сокращенное обозначение типа Exception инфраструктуры CLI.

Тип float

Сокращенное обозначение типа Double инфраструктуры CLI.

Тип float32

Сокращенное обозначение типа Single инфраструктуры CLI.

Тип Format<'Printer,'State,'Residue,'Result,'Tuple>

Тип выражения форматирования.

Тип Format<'Printer,'State,'Residue,'Result>

Тип выражения форматирования.

Тип int

Сокращенное обозначение типа Int32 инфраструктуры CLI.

Тип int16

Сокращенное обозначение типа Int16 инфраструктуры CLI.

Тип int32

Сокращенное обозначение типа Int32 инфраструктуры CLI.

Тип int64

Сокращенное обозначение типа Int64 инфраструктуры CLI.

Тип int8

Сокращенное обозначение типа SByte инфраструктуры CLI.

Тип nativeint

Сокращенное обозначение типа IntPtr инфраструктуры CLI.

Тип obj

Сокращенное обозначение типа Object инфраструктуры CLI.

Тип option<'T>

Тип необязательных значений. При использовании из других языков инфраструктуры CLI пустой параметр имеет значение null.

Тип ref<'T>

Тип изменяемых ссылок. Используйте функции [:=] и [!], чтобы получить и задать значения этого типа.

Тип sbyte

Сокращенное обозначение типа SByte инфраструктуры CLI.

Тип single

Сокращенное обозначение типа Single инфраструктуры CLI.

Тип string

Сокращенное обозначение типа String инфраструктуры CLI.

Тип uint16

Сокращенное обозначение типа UInt16 инфраструктуры CLI.

Тип uint32

Сокращенное обозначение типа UInt32 инфраструктуры CLI.

Тип uint64

Сокращенное обозначение типа UInt64 инфраструктуры CLI.

Тип uint8

Сокращенное обозначение типа Byte инфраструктуры CLI.

Тип unativeint

Сокращенное обозначение типа UIntPtr инфраструктуры CLI.

Тип unit

Тип "unit", для которого предусмотрено только одно значение — "()". Это значение является особым и всегда использует представление значения NULL.

Исключения

Исключение

Описание

Исключение MatchFailureException

Ошибки неисчерпывающего совпадения вызывают исключение MatchFailureException

См. также

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

Справочные материалы по основной библиотеке F#