在golang中解释make的幕后?

以下有什么区别?

  1. cards := deck{}

  2. cards := make(deck, 52)

  3. cards := make(deck, 0, 52)

其中,deck 是表示卡片的字符串数组type deck []string

现在,我面临的问题是,当我print()使用 在一副纸牌上运行以下功能时cards:= make(deck, 52),我看到它在打印纸牌之前打印了 52 条空行但是,当使用13从上方打印时,它完全可以正常打印只有一副牌的 52 张牌。

func (d deck) print()  {

    for _, card := range d {

        fmt.Println(fmt.Sprintf(`%s`, card))

    }

}

我不明白,我错过了什么吗?谢谢!


莫回无
浏览 113回答 1
1回答

动漫人物

cards := deck{}这将创建一个空甲板。cards:= make(deck, 52)这将创建一个包含 52 个空元素的牌组cards:= make(deck, 0, 52)这将创建一个容量为 52 的空甲板。也就是说,您可以cards在需要新分配之前追加到 52 个项目。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go