<>

作者: 凹大猫的鱼 | 来源:发表于2018-09-29 14:56 被阅读0次

container里面的容器


主要介绍了list的使用规则,主要重点都是围绕使用来的。注意下面几点即可:

1. 链表开箱即用
2. 不能把自己定义的Element类型给库函数使用。

链表的开箱即用

个人理解就是指的你在调用一些函数的时候,会去check一下链表的状态。
如果元素和链表不属于同一个,那么后面的操作就没必要了,还有一些元素
添加的函数,会对判断链表状态,然后有目的性的Init操作。

l.lazyInit()// 惰性初始化函

链表的基本操作

基本上函数自己看就可以用了。

ring的用法

func doubleValue(in interface{}){
fmt.Println(in)
}

func testRing(){
    r := ring.New(10)
    for i :=0;i < r.Len();i++{
        r.Value = i
        r = r.Next()
    }

    r.Do(doubleValue) //func (r *Ring) Do(f func(interface{}))  //对链表中任意元素执行f操作,如果f改变了r,则该操作造成的后果是不可预期的。
    r = r.Move(2) ////返回移动n个位置(n>=0向前移动,n<0向后移动)后的元素,r不能为空。
    fmt.Println(r.Value)
    r = r.Next() //获取下一个
    fmt.Println(r.Value)
    r = r.Prev() //获取上一个
    fmt.Println(r.Value)
    r.Unlink(2) //从当前node的next开始删除n个元素
    for i :=0;i < r.Len();i++{
        fmt.Println("After remove 2 nodes:",r.Value)
        r = r.Next()
    }
}

思考题

1.ring包中的循环链表在哪些场景中用

循环链表个人感觉主要用于保存固定的数据,比如保存最近100次的操作。

2.你使用过container/heap包中的堆吗?它的适用场景又有哪些?

预留处理!!!!!!!!!!!!!!!!

相关文章

  • <>

    container里面的容器 主要介绍了list的使用规则,主要重点都是围绕使用来的。注意下面几点即可: 链表的开...

  • Go核心36讲笔记

    Part1 .GO 语言安装的时候主要有三个环境变量:GOROOT、GOPATH 和 GOBIN通过 go env...

  • <>

    第一章重点: 该系列主要对郝林老师的课程做个人总结!!!文章在个人git下面,README里面写了郝林老师的课程地...

  • <>

    第二章重点: Go 的源码文件分类: 在第一章的时候已经提及到了这个关键问题: GO语言的flag包: 微课堂主要...

  • <>

    第三章重点: 第三章主要讲的是代码的管理,在第一章里面有的东西已经写进去了,这里按照老师的课程总结一下: 1. 同...

  • <>

    第四章重点: 变量的声明方式 go语言的类型推断有哪些好处 函数重声明的意思 代码块概念: 重声明的前提条件 思考...

  • <>

    第五章重点: 这一章主要是讲了go语言的模块的嵌套和查找规则 思考题 如果我们在go语言查找标识符范围的时候,用了...

  • <>

    第六章重点: go语言数据类型:基础类型(数字,字符串,布尔类型),复合类型(数组,结构体),引用类型(指针,切片...

  • <>

    数组和切片 切片和数组的区别 数组是属于值类型。结构体,基础类型数据也属于值类型。 注意GO语言对于“传值和传引用...

  • <>

    使用函数的正确姿势# 什么是高阶函数? 满足任意一点都可以称为高阶函数!! 闭包的概念 闭包个人了解就是函数和局部...

网友评论

      本文标题:<>

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