Unit, type

Le type unit est un type qui indique l’absence d’une valeur spécifique ; le type unit n’a qu’une valeur unique, qui joue le rôle d’espace réservé quand aucune autre valeur n’existe ou n’est exigée.

Syntaxe

// The value of the unit type.
()

Notes

Chaque expression F# doit être équivalente à une valeur. Pour les expressions qui ne génèrent pas de valeur intéressante, la valeur du type unit est utilisée. Le type unit ressemble au type void dans les langages tels que C# et C++.

Le type unit a une valeur unique et cette valeur est indiquée par le jeton ().

La valeur du type unit est souvent utilisée dans la programmation F# pour contenir l’emplacement où une valeur est requise par la syntaxe du langage, mais où aucune valeur n’est nécessaire ou souhaitée. Par exemple, il peut s’agir de la valeur renvoyée par une fonction printf. Étant donné que les actions importantes de l’opération printf se produisent dans la fonction, la fonction n’a pas besoin de renvoyer une valeur réelle. Par conséquent, la valeur renvoyée est de type unit.

Certaines constructions attendent une valeur unit. Par exemple, une liaison do ou n’importe quel code au niveau supérieur d’un module doit être équivalente à une valeur unit. Le compilateur signale un avertissement lorsqu’une liaison ou un code do au niveau supérieur d’un module produit un résultat autre que la valeur unit qui n’est pas utilisée, comme illustré dans l’exemple suivant.

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

Cet avertissement est une caractéristique de la programmation fonctionnelle; il n’apparaît pas dans d’autres langages de programmation .NET. Dans un programme purement fonctionnel, dans lequel les fonctions n’ont aucun effet secondaire, la valeur renvoyée finale est le seul résultat d’un appel de fonction. Par conséquent, lorsque le résultat est ignoré, il s’agit d’une erreur de programmation possible. Bien que F# ne soit pas un langage de programmation purement fonctionnel, il est recommandé de suivre le style de programmation fonctionnel dans la mesure du possible.

Voir aussi