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


Тип Unit (F#)

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

// The value of the unit type.
()

Заметки

В результате вычисления каждого выражения F# должно получиться определенное значение.Для выражений, не создающих необходимое значение, используется значение типа unit.Тип unit напоминает тип void в языках C#, C++ и им подобных.

Тип unit имеет одно значение, и это значение обозначается токеном ().

Значение типа unit часто используется в программировании на языке F#, чтобы обозначить место, где по синтаксическим нормам языка требуется значение, но на практике использовать его нежелательно или не обязательно.В качестве примера можно назвать возвращаемое значение функции printf.Так как в функции выполняются важные действия операции printf, функции не обязательно возвращать фактическое значение.Следовательно, возвращаемое значение имеет тип unit.

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

let function1 x y = x + y
// The next line results in a compiler warning.
function1 10 20 
// Changing the code to one of the following eliminates the warning.
// Use this when you do want the return value.
let result = function1 10 20
// Use this if you are only calling the function for its side effects,
// and do not want the return value.
function1 10 20 |> ignore

Предупреждение — это характеристика функционального программирования; в других языках программирования .NET оно не используется.Оно используется только в классическом функциональном программировании, где функции не имеют никаких побочных эффектов, а конечное возвращаемое значение является единственным результатом вызова функции.Следовательно, если результат игнорируется, возможно, имеет место ошибка программирования.Хотя F# не является языком функционального программирования в чистом виде, при работе с ним рекомендуется по возможности соблюдать принципы функционального программирования.

См. также

Ссылки

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

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

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