【F#学习】布尔运算优先级

在 F# 中,布尔逻辑运算符的优先级从高到低如下(括号可显式改变优先级):

优先级顺序(高 → 低)

  1. not

    • 一元逻辑非运算符(最高优先级)
    • 示例:not truefalse
  2. &&

    • 逻辑与运算符(短路求值)
    • 示例:true && falsefalse
  3. ||

    • 逻辑或运算符(短路求值)
    • 示例:true || falsetrue

关键规则

  • 短路求值(Short-Circuiting),也称惰性计算

    • &&:若左侧为 false,右侧不计算。
    • ||:若左侧为 true,右侧不计算。
  • 结合性

    • &&|| 均从左向右结合。
      • 示例:a && b && c(a && b) && c

示例与优先级验证

// 示例 1:not 优先于 &&
not true && false   // = (not true) && false → false && false → false

// 示例 2:&& 优先于 ||
true || false && false   // = true || (false && false) → true || false → true

// 示例 3:显式括号改变优先级
not (true && false)   // = not (false) → true

完整运算符表(部分相关)

运算符 描述 优先级组
not 逻辑非 最高
&& 逻辑与
|| 逻辑或 最低

提示: 不妨把not看作数字运算中的负号&&看作乘号×||看作加号,那么优先级也就一目了然了。

posted @ 2025-09-22 22:42  QMazon  阅读(6)  评论(0)    收藏  举报