gpt4 book ai didi

go - slice 声明和初始化之间的区别

转载 作者:IT王子 更新时间:2023-10-29 01:33:34 27 4
gpt4 key购买 nike

a 和 b 有什么区别?我知道 reflect.DeepEqual 认为它们不相等而且我知道 a 为零。是否有内置函数可以轻松显示差异?

var a []foo
b := []foo{}

最佳答案

fmt.Println(a == nil, b == nil)

打印 true false (Playground: http://play.golang.org/p/E0nQP8dVyE)。 a 是一个 nil slice ,而 b 只是一个空 slice 。在实践中没有太大区别,但通常,在一个查询数据库的函数中,一个 nil slice 意味着没有结果(由于错误或其他原因),而一个空 slice - 它找不到信息.

有关较低级别的差异,请参阅 Russ Cox 的 Go Data Structures文章。

关于go - slice 声明和初始化之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30206633/

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