上一篇 Go圣经-学习笔记之基础数据类型golang
好比:咱们用beego框架中的orm模型,使用了事务,则确定会遇到事务的开始、提交和回滚操做。那么跨方法或者函数,你是怎么作的呢?这里有一个小trick,你们能够参考下:函数
func AddSaleOrder(so *SaleOrder, o *orm.Orm) (retCode int, err error) { if o==nil { oo:=orm.NewOrm() o=&oo } if err = (*o).Begin(); err ==nil{ defer func(){ if err != nil{ (*o).Rollback() } else if err = (*o).Commit(); err !=nil{ retCode = consts.DB__COMMIT_ERROR } }() } return } if retCode, err = AddSaleOrder(so, nil); err !=nil{ ... }
咱们分析下这段代码,两种状况:学习
结论:有时候还真是须要好好停下来想一想,能不能尽可能的改善代码质量, 同时让代码尽量地美观好看.net