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

在golang中解释make的幕后?

在golang中解释make的幕后?

Go
莫回无 2022-06-13 10:45:55
以下有什么区别?cards := deck{}cards := make(deck, 52)cards := make(deck, 0, 52)其中,deck 是表示卡片的字符串数组type deck []string。现在,我面临的问题是,当我print()使用 在一副纸牌上运行以下功能时cards:= make(deck, 52),我看到它在打印纸牌之前打印了 52 条空行但是,当使用1或3从上方打印时,它完全可以正常打印只有一副牌的 52 张牌。func (d deck) print()  {    for _, card := range d {        fmt.Println(fmt.Sprintf(`%s`, card))    }}我不明白,我错过了什么吗?谢谢!
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

cards := deck{}这将创建一个空甲板。

cards:= make(deck, 52)这将创建一个包含 52 个空元素的牌组

cards:= make(deck, 0, 52)这将创建一个容量为 52 的空甲板。也就是说,您可以cards在需要新分配之前追加到 52 个项目。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信