知识卡片

类型断言用双返回值避免panic

专业/工作 · 1373.a.1

内容

要从[[接口变量只能看见接口方法]]的限制里跳出来、拿到具体类型好调用它专属的方法,需要用类 型断言(写作 value.(具体类型))。发散:这和 [[error作为返回值而非异常]]是同一种设计立场的延伸——但凡一个操作”可能按预期工作、也可能不 按预期工作”,Go 都倾向于把这个不确定性做成一个可以主动检查的返回值,而不是让它变成一个可能 在任何时候突然打断程序的隐藏异常;单返回值形式的存在。

参考来源

- 位置:《Head First Go语言程序设计》第11章《你能做什么:接口》(源文件:_epub-src/index_split_003.html) - 结论依据:原文在该章节围绕“要从[[接口变量只能看见接口方法]]的限制里跳出来、拿到具体类型好调用它专属的方法,需要用类型断言(写作val…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:3的随机数。我们为每个值提供了case表达式,每个值都打印一条不 同的信息。为了提醒我们注意理论上不可能出现的情况,即没有匹配的 case,我们还提供了一个产生panic的default语句。 有问必答 问:我见过其他一些语言,在每个case的末尾必须提供一 个“break”语句,否则它也会运行下一个case的代码。Go不需要这个吗? 答…