登录
首页 >  Golang >  Go问答

在Go中如何迭代循环并打印每三个元素

来源:stackoverflow

时间:2024-03-15 16:57:31 125浏览 收藏

在 Go 中迭代列表时,无法直接按特定计数查找或跳转。要打印每三个元素,需要使用计数器并循环遍历列表,在计数器每达到 3 的倍数时打印元素。可以创建一个辅助函数 `NextByCount`,用于根据指定的计数递增元素,或者使用一个简单的计数器变量,当它达到 3 的倍数时打印元素。

问题内容

我知道要遍历列表,我会执行以下操作:

for e := alist.Front(); e != nil; e = e.Next() {
       fmt.Println(e.Value) 
   }

但是,我想打印出每三个元素。在其他语言中,我会增加索引,如 e += 3。如何使用 go 做到这一点?


解决方案


列表是一个双向链表,不允许按特定计数进行查找或跳转。我的解决方法是这样的:

i := 0
for e := alist.front(); e != nil; e = e.next() {
    if i % 3 == 0 {
        fmt.println(e.value)
    }

    i++
}

或者一个用于代码重用的新函数(有了@torek的注释,它变得更简单):

func nextbycount(el *list.element, count int) *list.element {
    for ; el != nil && count > 0; count-- {
        el = el.next()
    }

    return el
}

然后循环它:

for e := alist.Front(); e != nil; e = NextByCount(e, 3) {
    fmt.Println(e.Value)
}

终于介绍完啦!小伙伴们,这篇关于《在Go中如何迭代循环并打印每三个元素》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>