gpt4 book ai didi

go - Go中一对圆括号语法表达式是什么意思?

转载 作者:行者123 更新时间:2023-12-01 22:42:30 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Typecasting in Golang

(5 个回答)


1年前关闭。




阅读本文https://github.com/go-pg/pg/wiki/Writing-Queries#select我多次看到这个表达:

(*Book)(nil)

例子:

count, err := db.Model((*Book)(nil)).Count()

这是什么意思?

最佳答案

那是类型转换。假设 db.Model函数需要 interface{} , 它发送一个类型为 *Book 的 nil 接口(interface)到功能。

转换一个值 v输入 Book ,你会写:

Book(v)

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

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

关于go - Go中一对圆括号语法表达式是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60443193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com