作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Rust 提示那场比赛是非详尽的。这是 Rust 的限制还是我错过了什么?
fn main() {
let x = 10;
match x {
1 => {},
y if y < 1 => {},
y if y > 1 => {}
}
}
最佳答案
Rust 在验证穷尽性时不会处理 if
表达式。鉴于此,您需要添加一个您标记为无法访问的包罗万象的匹配项,例如
fn main() {
let x = 10;
match x {
1 => {},
y if y < 1 => {},
y if y > 1 => {}
_ => unreachable!()
}
}
或者根据您的逻辑,更好的选择是根本不包含最后一个 if
,例如
fn main() {
let x = 10;
match x {
1 => {},
y if y < 1 => {},
y => {}
}
}
因为它只会到达最后一个匹配
,如果前面的匹配失败的话。
相关:
关于rust - 非穷举匹配 i32 即使它是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67855118/
我想知道 Haskell 模式匹配是如何在内部解决的,以及这如何影响性能。假设我们有一个计算成本很高的函数,因此我们在进行实际计算之前预先计算第一个和/或更频繁使用的值和模式匹配对应的输入: expe
我从以下要求开始: m,n 是整数。用搜索(x,y,z) x+y+z=n x^3 + y^3 + z^3 = m 还有我的代码 for(int x = 1; x
我是一名优秀的程序员,十分优秀!