gpt4 book ai didi

go - 我应该如何在 Go 中定义一个空 slice ?

转载 作者:IT老高 更新时间:2023-10-28 13:07:29 26 4
gpt4 key购买 nike

或者更准确地说,我似乎可以做这三件事中的任何一件。它们之间有什么区别吗?哪个最好,为什么?

  1. var foo []int
  2. foo := []int{}
  3. foo := make([]int, 0)

最佳答案

区别在于:

  1. 是一个 nil slice (foo == nil)。
  2. 和 3. 是非零 slice (foo != nil)。

以下几点适用于所有三个陈述:

  • 该语句不分配内存。
  • slice 长度为零:len(foo) == 0.
  • slice 容量为零:cap(foo) == 0

Playground example

因为len , capappend使用 nil slice ,(1) 通常可以与 (2) 和 (3) 互换使用。

所有选项在 Go 代码中都是常用的。

关于go - 我应该如何在 Go 中定义一个空 slice ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28052933/

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