首页 >后端开发 >Golang >`make([]int, 0) vs. []int{} vs. nil:在 Go 中初始化空切片的最佳方法是什么?`

`make([]int, 0) vs. []int{} vs. nil:在 Go 中初始化空切片的最佳方法是什么?`

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-19 14:12:10372浏览

`make([]int, 0) vs. []int{} vs. nil: What's the Best Way to Initialize an Empty Slice in Go?`

揭示初始化空切片的最佳方法

在声明具有灵活大小的空切片时,出现了以下问题:哪一个是首选初始化方法 - make([]int, 0) 或[]int{}?

两个选项都会产生语义相同的结果。然而,在 Go 1.16 中 make([]int, 0) 会触发对 runtime.makeslice 的内部调用。

或者,您可以选择 nil 值:

var myslice []int

如中所述在 Golang.org 博客中,一个 nil 切片的功能就像一个零长度切片,尽管它没有指向任何东西。它的长度为零,并且允许附加分配。

但是,请注意,nil 切片在 JSON 中序列化为“null”,而空切片呈现为“[]”。

无论选择哪种方法,都不会触发内存分配,正如 @ArmanOrdookhani 所阐明的。

以上是`make([]int, 0) vs. []int{} vs. nil:在 Go 中初始化空切片的最佳方法是什么?`的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn