在 Go 中,切片是一个代表灵活的类似数组类型的强大数据结构。使用切片时,您可能会遇到两种不同的声明方式:
理解这两种方法之间的区别对于编写高效且惯用的 Go 代码至关重要。
var s []int
简单声明 var s []int 不分配任何内存。它创建一个 nil 切片,这意味着 s 指向一个空内存地址。当您不知道预先需要的切片的确切大小或稍后需要动态分配内存时,通常使用此声明。
s := make([]int, 0 )
相反, s := make([]int, 0) 为具有 0 个元素的切片分配内存。它显式指示编译器创建具有特定容量的切片,该容量是在需要增长之前可以容纳的最大元素数。在本例中,它的容量为 0。当您知道所需切片的确切大小或想要避免不必要的内存重新分配时,首选此方法。
哪个更好?
一般来说,当您不知道所需切片的确切大小或想要分配内存时,使用 var s []int 更惯用动态地。如果您预先知道确切的大小或需要避免内存重新分配,则 s := make([]int, 0) 是更好的选择。
以上是Go 切片: `var s []int` 或 `s := make([]int, 0)` – 哪种声明最好?的详细内容。更多信息请关注PHP中文网其他相关文章!