ifelse嵌套屎山的解决方法-卫语句
卫语句(Guard)
什么是卫语?卫语句是一种编程思想,提前检查边界,保卫代码。
一、什么时候使用卫语句
大厂开发规范,超过三个ifelse建议使用卫语句、策略模式、状态模式等方式重构
以下代码中使用了卫语句进行了优化,当然实际开发中业务比这个更复杂,所以更加体现了遇到复杂逻辑需要使用卫语句。
// 求100以内同时是 3,4,5 的倍数
for (let i = 0; i <= 100; i++) {
if (i % 3 == 0) {
if (i % 4 == 0) {
if (i % 5 == 0) {
console.log(i)
}
}
}
}
// 使用卫语句,从结果导向思考,摘除不是3,4,5倍数的,剩下的就是我们要的
for (let i = 0; i <= 100; i++) {
if (i % 3 !== 0) {
continue
}
if (i % 4 !== 0) {
continue
}
if (i % 5 !== 0) {
continue
}
console.log(i);
}
二、总结
- 单一嵌套ifelse分支嵌套直接使用switch就可以解决了。但是业务逻辑变得复杂时,switch恐难胜任。
- 我们发现如果按照事情发生的顺序写代码,会出现太多的ifesle分支,难以维护。这时候就需要使用卫语句提前检查边界直接return/continue掉不可能发生的分支。
- 卫语句其实是一种编程思想,从结果导向思考来优化代码。解决了ifelse的屎山代码,增加了代码的可读性和可维护性。
洗尽铅华始见金,褪去浮华归本真
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现