Bur*_*dar 6

那就是类型转换。假设db.Model函数采用interface{},它会向函数发送一个 nil 类型的接口*Book。

要将值转换v为 type Book,您可以编写:

Book(v)
Run Code Online (Sandbox Code Playgroud)

但是,你不能写,Book(nil)因为nil是一个指针而Book不是。如果你有一个类型

type BookPtr *Book
Run Code Online (Sandbox Code Playgroud)

那么你可以写BookPtr(nil). 扩展它,你想写*Book(nil),但这意味着*(Book(nil))这是无效的,因此:

(*Book)(nil)
Run Code Online (Sandbox Code Playgroud)