package mainimport ( "errors" "fmt" "strings")type CustomError struct { errors []string}func (c *CustomError) Add(err error) { c.errors = append(c.errors, err.Error())}func (c *CustomError) Error() string { return strings.Join(c.errors, ";")}type Courseware struct { Name string Code string}// 返回*CustomErrorfunc (c *Courseware) Validate() *CustomError { var m *CustomError if c.Name == "" {m = &CustomError{}m.Add(errors.New("课件名不能为空")) } if c.Code == "" {if m == nil {m = &CustomError{}}m.Add(errors.New("课件编号不能为空")) } return m}func main() { m := Courseware{Name: "多媒体课件",Code: "CW330", } if err := m.Validate(); err != nil {fmt.Println("valid err: ", err) }}但这并不是可取的,为了扩展我们实现了error接口,也需要返回error类型的错误 。
经验总结扩展阅读
- 恋爱中的人,哪些星座在感情里最冷酷
- 肖红绣是什么电视剧中的人物?
- 胡小强慧中是哪部电视剧中的人物?
- 什么人招蚊子
- golang中的字符串
- 牛奶和可乐的化学反应
- 银杏在佛教中的寓意
- 肖凯是哪部电视剧中的中的人物?
- DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事
- 美惠子黑旋风是什么电视剧中的人物?
