常用关键字

defer

实例

下面是一个使用 defer 的实例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
func createPost(db *gorm.DB) error {
    tx := db.Begin()
    defer tx.Rollback()
    
    if err := tx.Create(&Post{Author: "Draveness"}).Error; err != nil {
        return err
    }
    
    return tx.Commit().Error
}

可见它的用法是:defer 之后指定的语句,会在整个函数执行结束的时候执行。