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

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

Mary-Kate Olsen
发布: 2024-12-19 14:12:10
原创
391 人浏览过

`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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板