为了账号安全,请及时绑定邮箱和手机立即绑定

我应该如何在 Go 中定义一个空切片?

我应该如何在 Go 中定义一个空切片?

Go
牛魔王的故事 2021-09-13 09:59:01
或者更准确地说,我似乎可以做这三件事中的任何一件。它们之间有什么区别吗?哪个是最好的,为什么?var foo []intfoo := []int{}foo := make([]int, 0)
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

区别在于:

  1. 是一个零切片 ( foo == nil)。

  2. 和 3. 是非零切片 ( foo != nil)。

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

  • 该语句不分配内存。

  • 切片长度为零:len(foo) == 0

  • 切片容量为零:cap(foo) == 0

因为lencapappend与 nil 切片一起使用,所以 (1) 通常可以与 (2) 和 (3) 互换使用。

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


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号