ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
实现一个 SumAll 函数,它接受多个切片,并返回由每个切片元素的总和组成的新切片 sum.go ~~~ package array func Sum(numbers []int) int{ sum := 0 for _, val := range numbers { sum += val } return sum } func SumAll(numbersToSum ...[]int) []int{ lengthOfNumbers := len(numbersToSum) result := make([]int, lengthOfNumbers) for i, numbers := range numbersToSum { result[i] = Sum(numbers) } return result } ~~~ SumAll方法重构 ~~~ func SumAll(numbersToSum ...[]int) []int{ var sums []int for _, numbers := range numbersToSum { sums = append(sums,Sum(numbers)) } return sums } ~~~ 在这个实现中,我们不用担心切片元素会超过容量。我们开始使用空切片(在函数签名中定义),在每次计算完切片的总和后将结果添加到切片中。 sum_test.go ~~~ package array import "testing" import "reflect" func TestSumAll(t *testing.T) { got := SumAll([]int{1,2,3},[]int{2,5}) want := []int{6,7} if !reflect.DeepEqual(got, want) { t.Errorf("expect:%d, but got:%d", want, got) } } ~~~