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.