美文网首页Golang语言知识库
知识分享之Golang——Golang中切片的一些增加、删除、添

知识分享之Golang——Golang中切片的一些增加、删除、添

作者: cn華少 | 来源:发表于2022-02-28 22:31 被阅读0次

    知识分享之Golang——Golang中切片的一些增加、删除、添加、遍历删除

    背景

    知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

    知识分享系列目前包含Java、Golang、Linux、Docker等等。

    开发环境

    • 系统:windows10
    • 语言:Golang
    • golang版本:1.17

    内容

    本节我们进行分享Golang中切片的一些增加、删除、添加、遍历删除等操作,以下为本次的测试案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var ss []string
        fmt.Printf("初始切片:%v \n", ss)
        //切片尾部追加元素append elemnt
        for i := 0; i < 5; i++ {
            ss = append(ss, fmt.Sprintf("测试%d", i))
        }
        fmt.Printf("追加元素:%v \n", ss)
        //删除切片元素remove element at index
        index := 3
        ss = append(ss[:index], ss[index+1:]...)
        fmt.Printf("删除元素:%v \n", ss)
        //在切片中间插入元素insert element at index;
        //注意:保存后部剩余元素,必须新建一个临时切片
        rear := append([]string{}, ss[index:]...)
        ss = append(ss[0:index], "插入项")
        ss = append(ss, rear...)
        fmt.Printf("中间插入元素:%v \n", ss)
    }
    

    案例2:遍历删除,重点在于len(ageList)长度一直是变化的,同时当某个元素被删除时循环下标不发生改变,这样可以有效防止前一次移动过来的对象被忽略掉

        tt := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
        for i := 0; i < len(tt); {
            if tt[i] < 5 {
                tt = append(tt[:i], tt[i+1:]...)
            } else {
                // 大于等于5则进入下一个
                i++
            }
        }
        fmt.Printf("大于5的部分被保留了下来:%v", tt)
    

    参考文献:

    https://studygolang.com/articles/16223
    https://blog.csdn.net/whatday/article/details/98244776

    本文声明:
    88x31.png
    知识共享许可协议
    本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

    相关文章

      网友评论

        本文标题:知识分享之Golang——Golang中切片的一些增加、删除、添

        本文链接:https://www.haomeiwen.com/subject/lzwlrrtx.html