填表时看到「电话/手机」,写条件时看到 a || b,逻辑课本上是 A ∨ B,这些都算或者的符号,只是领域不同,用错了场合就会闹误会。
逻辑和数学里用 ∨
离散数学和逻辑学里,或者写作 ∨,读作析取。A ∨ B 为真,只要 A、B 至少一个成立,真值表里两列只要有一列真,结果就是真;和它相对的是 ∧,表示并且。这个符号主要出现在教材、试卷和论文里,日常聊天基本用不上。
编程里分两种
大多数语言里逻辑或是两个竖线,a || b 的结果是布尔值,左边为真时右边不再计算,这叫短路求值。JS 里还有个空值合并 ??,别和 || 混着用,0 和空串在 || 里会被当成假。按位或只有一个竖线,x | 0x08 对二进制每一位做或运算,常用来给标志位加开关,比如把某一位置成 1。
正则表达式里的或者也是单竖线,cat|dog 表示匹配 cat 或者 dog。shell 命令连接两个竖线表示前一条失败才执行后一条,比如 mkdir tmp || echo 已存在。
日常文字里的或者
中文语境最常见的其实是斜杠,比如 和/或、已婚/未婚,表示二选一或者都行,简历里常见的「专科/本科以上」同理。填表格里的「/」也是这个意思。有人还用大写字母 V 代替 ∨ 手打,聊天里能看懂,正式文档建议还是用标准符号。
一张速查对一下:
- A ∨ B:A、B 至少一个为真,结果就为真。
- a || b:左边为真就不再看右边,返回布尔。
- x | y:每一位分别做或,1 和任何数或都是 1。
- cat|dog:正则里命中其中一个就算匹配。
看到符号先分领域:逻辑书里认 ∨,代码里两个竖线是或者、一个竖线是按位或,正则单竖线做分支,日常文字多半是斜杠。分不清时先想上下文属于哪个领域,同一个符号在别的场合意思完全不同。写文档时如果两种「或者」可能混淆,在旁边补一句注释,比让读者猜靠谱。