在使用make初始化切片时,参数长度是必选的,容量是可选的。没有给这两个参数传入合理的值是一个非常普遍的错误。让我们看一下如何评估这两个参数的合理性。
假设我们想实现一个convert函数,将切片Foo中的值全部映射到切片Bar中,之后两个切片将具有相同数量的元素。以下为第一个实现:
func convert(foos []Foo) []Bar { bars := make([]Bar,0) //创建用于保存最终结果的切片 for _,foo := range foos { //把Foo转换成Bar,并把它添加到切片中 bars = append(bars,fooToBar(foo< |