Тип Unit

Тип 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# не является чисто функциональным языком программирования, рекомендуется следовать функциональному стилю программирования всякий раз, когда это возможно.

См. также