渐进式编程课
Go 目录
第 22 课2026.09.30

让上一课的提示函数分别覆盖过短、过长与未知错误。

第 22 课:完整映射两类时长错误

  • 日期:2026-09-30
  • 课程序号:第 22 课
  • 知识点:switch 配合 errors.Is

用途或适用场景

让上一课的提示函数分别覆盖过短、过长与未知错误。

核心概念

按错误身份分支,不解析包装后的错误字符串;nil 返回空提示。

最小代码或操作示例

go
func message(err error) string {
 switch {
 case err == nil: return ""
 case errors.Is(err, errMinutes): return "请输入正数分钟"
 case errors.Is(err, errTooLong): return "最多 60 分钟"
 default: return "时长校验失败"
 }
}

3~5 分钟练习

分别传入两个包装错误和 nil。

参考答案

依次得到正数提示、上限提示与空字符串。

与上一课的联系

第 21 课开始封装错误提示但只覆盖一类;本课只补齐既有两种错误身份;下一课可为提示函数写表格测试。

时效校验

时效校验:2026-09-30(Go 当前标准库;errors.Is 自 Go 1.13 可用,未见废弃标记。)

官方参考