上一篇 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