Go 学习笔记——条件判断 if
前言之背景的别名
其实,条件判定,包括后边我将要总结记录的 for,switch 等语法,都是各类编程语言中的基本语法,只要稍微有一点基础,基本都是可以一看就明白的。
但是呢,Go 最近实在是太火了,而且,我个人也是慢慢的开始深入了解这种语言,所以本着初学者的态度,还是好好的来总结一下吧。
初识
if 语句是 Go 语言中提供的一种分支控制结构,它也是 Go 中最常用、最简单的分支控制结构。它会根据布尔表达式的值,在两个分支中选择一个执行,分支结构是传统结构化程序设计中的基础构件。
专属风格
go 中的 if 写法有自己的特点
if 语句的分支代码块的左大括号与 if 关键字在同一行上,这也是 Go 代码风格的统一要求;
if 语句的布尔表达式整体不需要用括号包裹(但是为了增加可读性或者有其他语言的书写习惯,在表达式里包上括号也没问题,而且,判定表达式多了以后,最好还是加上括号比较好),一定程度上减少了开发人员敲击键盘的次数
注意逻辑判定符的优先级,逻辑非(!=)>逻辑并(&&)>逻辑或(||),这里举一个TonyBai老师课程里的典型例子
Go 语言的 if 语句除了简单的单分支结构,还有二分支结构和多(N)分支结构,也就是 if...else...和 if ...else if...else if...else 这两种,注意,在写代码的时候,要尽量保持单分支结构,避免多分支和二分支的频繁出现,不然代码就会翔化。
Go 语言里支持声明 if 语句的自用变量。我们可以在 if 后的布尔表达式前,进行一些变量的声明,在 if 布尔表达式前声明的变量,我叫它 if 语句的自用变量。顾名思义,这些变量只可以在 if 语句的代码块范围内使用
if 语句的“快乐路径”原则
在日常编码中要减少多分支结构,甚至是二分支结构的使用,这会有助于我们编写出优雅、简洁、易读易维护且不易错的代码
所谓“快乐路径”也就是成功逻辑的代码执行路径,它的特点是这样的:
仅使用单分支控制结构;
当布尔表达式求值为 false 时,也就是出现错误时,在单分支中快速返回;
正常逻辑在代码布局上始终“靠左”,这样读者可以从上到下一眼看到该函数正常逻辑的全貌;
函数执行到最后一行代表一种成功状态。
Go 社区推荐 Gopher 们在使用 if 语句时尽量符合这些原则,如果你的函数实现代码不符合“快乐路径”原则,你可以按下面步骤进行重构:
尝试将“正常逻辑”提取出来,放到“快乐路径”中;
如果无法做到上一点,很可能是函数内的逻辑过于复杂,可以将深度缩进到 else 分支中的代码析出到一个函数中,再对原函数实施“快乐路径”原则。
好了,就这些。
版权声明: 本文为 InfoQ 作者【为自己带盐】的原创文章。
原文链接:【http://xie.infoq.cn/article/7d263280e94229048151b5a70】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论