gpt4 book ai didi

rust - 结果 模式匹配

转载 作者:行者123 更新时间:2023-11-29 08:23:16 25 4
gpt4 key购买 nike

<分区>

我偶然发现了 Rust 编译器的一个非常奇怪的行为:

fn main() {
match bool_result(false) {
Err(_) => println!("Got error"),
Ok(value) if value => println!("Got value TRUE"),
Ok(value) if !value => println!("Got value FALSE"),
// Ok(z) => println!("WTF: {}", z), // uncomment to compile
}
}

fn bool_result(x: bool) -> Result<bool, ()> {
Ok(x)
}

除非我取消对最后一个匹配臂的注释,否则上面的代码片段不会编译并出现以下错误。但是boolean值只有TRUE/FALSE,为什么rustc会认为匹配不详尽呢?

error[E0004]: non-exhaustive patterns: `Ok(_)` not covered
--> src/main.rs:4:10
|
4 | match bool_result(false) {
| ^^^^^^^^^^^^^^^^^^^^^^ pattern `Ok(_)` not covered

使用rust 的:

rustc --version
rustc 1.33.0 (2aa4c46cf 2019-02-28)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com