首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆开切片时进行切片

拆开切片时进行切片
EN

Stack Overflow用户
提问于 2019-09-13 22:50:43
回答 1查看 47关注 0票数 1

我有以下代码

代码语言:javascript
复制
func Sum(a []int) int {
    res := 0
    for _, n := range a {
        res += n
    }
    return res
}

func SumAll(ns ...[]int) (sums []int) {
    for _, s := range ns {
        sums = append(sums, Sum(s))
    }
    return
}

//SumAllTails sums [:1] in each slice
func SumAllTails(sls ...[]int) []int {
    newsls := [][]int{}
    for _, sl := range sls {
        newsls = append(newsls, sl[1:])
    }
    return SumAll(newsls...)
}

理想情况下,我希望将最后一个函数更改为如下所示

代码语言:javascript
复制
func SumAllTails(sls ...[]int) []int {
    return SumAll(sls[:][1:]...)
}

最后一位返回除第一个之外的每个切片,但我想要做的是从位置1开始解压每个切片,省略0处的值。在go中有没有实现这一点的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-13 23:04:14

我认为做你想做的事情的唯一方法是编写一个SumAlln函数,而不是先看一遍切片:

代码语言:javascript
复制
func SumAlln(n int, ns ...[]int) (sums []int) {
    for _, s := range ns {
        sums = append(sums, Sum(s[n:]))
    }
    return
}

func SumAll(ns...[]int) []int {
    return SumAlln(0,ns...)
}

然后给SumAlln打电话。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57925888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档