patternrustCritical
What is the purpose of the unit type in Rust?
Viewed 0 times
whattheunitpurposerusttype
Problem
Rust has the unit type,
What is the purpose of the unit type and its value? Is it a mechanism to avoid using null (or nil) like other languages have?
(), a type with a single zero-size value. The value of this unit type is also specified using ().What is the purpose of the unit type and its value? Is it a mechanism to avoid using null (or nil) like other languages have?
Solution
() is a value of the type () and its purpose is to be useless.Everything in Rust is an expression, and expressions that return "nothing" actually return
(). The compiler will give an error if you have a function without a return type but return something other than () anyway. For examplefn f() {
1i32 // error: mismatched types: expected `()` but found `int`
}There are practical uses for
() too. Sometimes we don't care about a generic type, and () makes this explicit.For example, a
Result can be used as return type for a function that either completes successfully or fails for a variety of reasons.Code Snippets
fn f() {
1i32 // error: mismatched types: expected `()` but found `int`
}Context
Stack Overflow Q#24842271, score: 124
Revisions (0)
No revisions yet.