简体   繁体   中英

Why does Rust's example guessing game allow a match statement with varying return types?

Looking at the guessing game example from the intro book , specifically the part where you use a match statement to perform error-handling:

let guess: u32 = match guess.trim().parse() {
    Ok(num) => num,
    Err(_) => continue,
};

Why doesn't it complain that the different arms of the match statement have different return types? One returns a u32 , the other executes a continue statement and doesn't return anything. I thought either all arms of a match statement must execute code, or all arms must return something of the same type as one another.

continue has type ! (AKA "never") , which can coerce into any other type , since no values of it can exist.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM