知识卡片
switch默认不贯穿的设计
内容
C、C++、Java的switch默认会贯穿(fall through)——执行完一个case会继续往下执行下一个case,除非显式写break,这个”忘记写break导致意外贯穿”是经典的低级错误来源。发散:这是”把最常见的用法设为默认值”的设计原则——绝大多数switch场景是”匹配一个分支就结束”,贯穿反而是少数情况,C系语言把小概率行为设为默认、要求你为最常见的情况。
参考来源
- 位置:《Go语言程序设计》第5章《过程式编程》(源文件:_epub-src/OEBPS/text00039.html)
- 结论依据:原文在该章节围绕“C、C++、Java的`switch`默认会贯穿(fallthrough)——执行完一个`case`会继续往下…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:这是因为当 fmt 包的打印函数遇到 interface{} 类型时,它们会足够智能地打印实际类型的值。 5.2 分支 Go语言提供了3种分支语,即 if 、 switch 和 select, 后者将在后面深入讨论(参见5.4节)。分支效果也可以通过使用一个映射来达到,它的键可以用于选择分支,而它的值是对应的要调用的函数,我们会在本章末尾…