HiveBrain v1.2.0
Get Started
← Back to all entries
patternrustCritical

What is the purpose of the unit type in Rust?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
whattheunitpurposerusttype

Problem

Rust has the unit type, (), 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 example

fn 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.