【问题标题】:Do logical operators short-circuit in Rust?Rust 中的逻辑运算符会短路吗?
【发布时间】:2024-04-12 13:45:02
【问题描述】:

&&|| 在知道结果后是否立即停止评估? 换句话说,(true == true) || (true == false) 不会计算右侧,因为整个表达式在仅计算左侧之后已知为 true

【问题讨论】:

    标签: rust


    【解决方案1】:

    是的。

    来自Rust reference

    fn main() {
        let x = false || true; // true
        let y = false && panic!(); // false, doesn't evaluate `panic!()`
    }
    

    【讨论】:

    • 这些运算符也有非短路变体|&
    • 这并不是真正的错误——它是尚未实现且被禁止的代码。