go语言从零学起(二)--list结构基本用法

list,go标准库双向链表结构

定义:

a := list.New()

用法示例:

package main

import (
    "container/list"
    "fmt"
)

func main() {
    l := list.New()

    l.PushBack(1) //插入链表的最后一个位置
    l.PushBack(2)
    l.PushBack(3)
    l.PushFront(4) //插入链表的第一个位置

    i := 1
    for e := l.Front(); e != nil; e = e.Next() {
        fmt.Printf("元素%d:%d\n", i, e.Value)
    }
}

输出结果:

元素1:4
元素2:1
元素3:2
元素4:3

list中元素为struct时,获取元素每项的方式稍微有些区别,示例如下:

package main

import (
    "container/list"
    "fmt"
)

type User struct {
    id   int
    name string
}

func main() {

    l := list.New()

    item1 := User{id: 101, name: "name1"}
    item2 := User{id: 102, name: "name2"}
    l.PushBack(item1)
    l.PushBack(item2)

    i := 1
    for e := l.Front(); e != nil; e = e.Next() {
        fmt.Printf("元素%d: id:%d, name:%s\n", i, e.Value.(User).id, e.Value.(User).name) //先转义后使用
        i++
    }
}

输出为:

元素1: id:101, name:name1
元素2: id:102, name:name2
时间: 2024-07-29 18:32:40

go语言从零学起(二)--list结构基本用法的相关文章

go语言从零学起(三)--list循环删除元素(转载)

本篇系转载 在使用go的container/list的package时,你可能会无意间踩一个小坑,那就是list的循环删除元素. list删除元素,直观写下来的代码如下: package main import ( "container/list" "fmt" ) func main() { //初始化一个list l := list.New() l.PushBack(1) l.PushBack(2) l.PushBack(3) l.PushBack(4) fmt.

带你从零学ReactNative开发跨平台App开发(二)

ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 上一篇教程我们一步步配置了开发RN的必备环境,这篇文章我们依然配置环境,昨天配置的是CRNA模式开发的环境,我们今天配置原生混合开发环境. 第一次写系列教程,写的不好,多多担待,有错误欢迎评判指正. 说一下这个系列教程的目标吧,实战一个CRNA模式开发的跨平台App打包并发布,并将这个App用原生混合开模式实现并打包发布. 废话不多说开始撸码,你准备好了吗? 环境配置 配置原生混合模式开发的环

从零学编程1-写一封情书

一哥们闲暇之余想学编程,博主作为"会装系统的人"自然脱不了干系,这哥们名字叫鹰,初中文化,对于电脑的认识属于只会上网听歌看电影,差点忘了他强调过CF玩的不错. 那就教起吧. 主人公两枚: 鹰:从零学编程的哥们 我:从零教编程的作者 !!注意为了便于新手理解,使用大量的便于理解的语句,不代表本人知识水平.我怎么会告诉你Windows启动过程呢.(- o -)~ 开始我们的故事 我:今天让我们写一封电子情书. 鹰:我听说过,但是网上说得太复杂了- 我:会非常简单的.先下载个编程工具.就用我

笨鸟学php(二) 如何使用变量

一. 变量的声明 1. php中声明变量的方法:  $var = 123; 2. php是弱类型的语言, 变量的类型由存储的值决定 注: Java是强类型语言, 声明变量一定要先指定类型 3. isset() 和 unset() isset() : 判断值是否存在;    unset() : 去掉变量的值 <?php $a = $b = $c = $d = "hello, world"; unset($a); if(isset($a)){ echo $a; }else{ echo

从零学编程2-做个工资计算器

回顾上一篇:从零学编程1-写一封情书 做个工资计算器 主人公两枚: 鹰:从零学编程 我:从零教编程 我:阿鹰问你个问题,你喜欢做贡献吗? 鹰:不喜欢. 我:囧.OK,那我们换个问法,你喜欢钱吗? 鹰:喜欢!!!有钱我就可以买CF神器了,我跟你说啊最近粗了一把狙.. 我: OK,OK我们聊钱(强颜欢笑中) 大家都喜欢钱,但是钱的本质是什么呢?上过高中的都知道,它是商品交换的产物.商品不可能大街上去捡.就算是大街上去捡垃圾,那也是付出了劳动,清洁了环境不是吗?所以金钱的来源,就是做贡献.只有为社会做

Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至,各种事情很多,今天终于驱动自己把上次遗留的内容补充完 奉上在电子请帖中添加留言板的功能简介,采用php脚本语言和mysql数据库,同样在新浪的SAE平台下,可以节省很多部署和维护工作 在SAE的个人项目管理界面,从MySql页面点击"管理MySql",进入SAE提供的mysql数据库管理

带你从零学ReactNative开发跨平台App开发(五)

ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发跨平台App开发(三) 带你从零学ReactNative开发跨平台App开发(四) 带你从零学ReactNative开发跨平台App开发(五) 其实写到第三篇的时候,再写第四篇,我突然感到再往后写,好 艰难 啊,坚持,我坚持写,坚持就是胜利,有人说你写这干什么,我说爱好而已,就好比有的人喜欢打王者,

带你从零学ReactNative开发跨平台App开发(十)

ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发跨平台App开发(三) 带你从零学ReactNative开发跨平台App开发(四) 带你从零学ReactNative开发跨平台App开发(五) 带你从零学ReactNative开发跨平台App开发(六) 带你从零学ReactNative开发跨平台App开发(七) hot:更多>> 贴一个交流群的二

带你从零学ReactNative开发跨平台App开发(十三)

ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发跨平台App开发(三) 带你从零学ReactNative开发跨平台App开发(四) 带你从零学ReactNative开发跨平台App开发(五) 带你从零学ReactNative开发跨平台App开发(六) 带你从零学ReactNative开发跨平台App开发(七) hot:更多>> 好久没写了,最近