下面的区别是什么?
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))
}
}
我不明白这个问题,我是不是遗漏了什么?谢谢!请问下面的代码有什么区别?
cards := deck{}
这将创建一个空的牌组。
cards:= make(deck, 52)
这将创建一个包含52个空元素的牌组。
cards:= make(deck, 0, 52)
这样就形成了一个容量为52的空牌。也就是说,你可以追加到 cards
52项,才需要进行新的分配。