钩子函数与回调机制专题测试
考察知识点
- BeforeSave/AfterSave 生命周期钩子
- BeforeCreate/AfterCreate 创建钩子
- BeforeUpdate/AfterUpdate 更新钩子
- 回调注册与执行顺序
💡 参考答案在文末
判断题
1
db.Unscoped().Delete(&user) 也会触发 BeforeDelete 和 AfterDelete 钩子。
单选题
2
BeforeUpdate 钩子在什么时候被调用?
3
AfterFind 钩子的主要用途是什么?
4
BeforeUpdate 钩子适合用于以下哪个场景?
5
GORM 的 BeforeCreate 钩子在什么时候被调用?
6
BeforeDelete 钩子在什么情况下会被调用?
7
BeforeDelete 钩子的主要用途是什么?
8
GORM 的 AfterFind 钩子在什么时候被调用?
多选题
9
以下关于更新钩子的描述,哪些是正确的?
10
以下哪些场景适合使用 AfterFind 钩子?
11
在 AfterUpdate 钩子中可以执行数据库操作吗?
12
以下哪些场景适合使用删除钩子?
13
以下哪些场景适合使用 BeforeCreate 钩子?
14
以下哪些场景适合使用 AfterFind 钩子?
填空题
15
GORM 的钩子执行顺序为:____________钩子 -> 执行SQL -> ____________钩子。如果 Before 钩子返回错误,则不会执行 SQL 和 After 钩子。
16
定义 GORM 钩子的方法是实现____________方法,如果返回错误则会____________插入操作。
17
GORM 钩子方法的标准签名为 func (m *Model) ____________(tx *____________) error。
参考答案
1.正确
2.D
3.A
4.A
5.A
6.C
7.D
8.C
9.A;B;C
10.A;B
11.A;B;D
12.A;B;C;D
13.A;B;D
14.A;B;D
15.Before;After
16.BeforeCreate(tx *gorm.DB) error;中止
17.AfterFind;gorm.DB
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码