Lobsters | 原文链接 | 2026-09-27 收录 · 热度 10

让 if 判断保持无副作用

来源: teamten.com — 2026-09-26

概述

作者主张绝不应把有副作用的调用塞进 if 条件里,比如 if (enqueueMessage(message)) 或 if (flushQueue() == 0)。if 的唯一职责是判断条件真假,而不是借求值顺带执行动作;把返回值赋给有名字的变量,代码才像英语一样可读。他以生产代码 if (!categorySeen.add(categoryID)) continue; 为例,说明读者会把 add() 误读成 contains(),三重否定再加 continue 更是让人无法理解。

核心要点

金句

你以为简练的写法更好,其实是在给未来的读者添麻烦。
← 返回 Lobsters 首页