您好,欢迎光临有路网!
Go语言编程实战
QQ咨询:
有路璐璐:

Go语言编程实战

  • 作者:强彦 王军红
  • 出版社:清华大学出版社
  • ISBN:9787302523017
  • 出版日期:2019年07月01日
  • 页数:0
  • 定价:¥59.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书从初学者的角度出发,通过通俗易懂的语言、丰富实用的案例,详细介绍了使用Go语言进行程序开发需要掌握的知识。全书分为16章,包括为什么要使用Go语言,Go语言开发环境,“Hello World”程序实现,流程控制,数组、切片和映射,string操作,函数,指针,结构体和方法,接口,并发,文件操作,错误处理与日志,创建自己的go包,Go语言编码、数据库编程等。书中所有知识都结合具体实例进行介绍,设计程序代码给出了详细注释,可以使读者轻松领会Go程序开发的精髓,快速提高开发技能。另外,本书还有配套的PPT和视频讲解。 本书适合作为Go语言开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,还可供开发人员查阅、参考。
    文章节选
    第5章数组、切片和映射
    使用任何一门编程语言来编写一个程序都会涉及读取和存储集合数据的情况。在进行数据库访问、文件访问、网络访问等操作时,使用某种数据结构来存储所接收的数据是十分必要的,而Go语言就提供了三种数据结构供用户管理集合数据: 数组、切片和映射。这三种数据结构作为Go语言核心的一部分在标准库中被广泛使用。熟练地掌握这些数据结构会使Go语言编程变得更加方便、快捷。
    本章要点:
     了解数组、切片和映射的创建以及初始化过程。
     熟知数组、切片和映射的使用方法。
     掌握数组元素的元素访问过程。
     熟悉切片赋值、切片增长和切片复制的过程。
     掌握映射中元素赋值、查询和删除的方法。
    5.1数组
    数组是Go语言编程中*常用的数据结构之一。顾名思义,数组就是指具有固定长度的一系列同一类型数据的集合。由于数组的长度固定,故在Go中很少直接使用。切片的长度可以改变,在很多场合下使用得更多。然而在理解切片之前,必须先理解数组。
    数组是一种���常有用的数据结构,其所占用的内存是连续分配的。由于内存连续,CPU能把正在使用的数据缓存更久的时间,而且内存连续很容易计算索引,可以快速迭代数组中的所有元素。数组的类型信息可以提供每次访问一个元素时需要在内存中移动的距离。既然数组的每个元素类型相同,又是连续分配,就可以以固定速度索引数组中的任意数据,而且速度非常快。
    以下为一些常规的数组声明方法:

    [32]byte //长度为32的数组,每个元素为一个字节

    [2*N] struct { x, y int32 } //复杂类型数组

    [1000]*float64 //指针数组

    [3][5]int //二维数组

    [2][2][2]float64 //等同于[2]([2]([2]float64))

    从上述声明方法可以看出,数组可以是多维的,比如[3][5]int就表达了一个3行5列的二维整型数组,总共可以存放15个整型元素。
    在Go语言中,数组长度定义后就不可更改了。在声明时长度可以为一个常量或者一个常量表达式(常量表达式是指在编译期即可计算结果的表达式)。数组的长度是该数组类型的一个内建常量,可以用Go语言的内建函数len()来获取。
    5.1.1声明与初始化
    声明数组时需要指定内部存储的数据的类型,以及需要存储的元素的数量,这个数量也称为数组的长度,代码如下所示:

    var array [3]int

    //声明一个包含三个元素的整型数组
    一旦声明,数组中存储的数据类型和数组长度就都不能改变了。如果需要存储更多的元素,就需要先创建一个更长的数组,再把原来数组里的值复制到新数组中。


    图51整型数组的声明


    在Go语言中声明变量时,总会使用对应类型的零值来对变量进行初始化。数组也不例外。当数组初始化时,数组内每个元素都初始化为对应类型的零值。在图51中,可以看到整型数组中的每个元素都初始化为0,也就是整型的零值。

    一种快速创建数组并初始化的方式是使用数组字面量。数组字面量允许在声明数组元素数量的同时指定每个元素的值,代码如下所示:

    //声明一个包含五个元素的整型数组

    //用具体值初始化每个元素

    array := [5]int{10, 20, 30, 40, 50}

    如果使用…替代数组的长度,Go 语言会根据初始化时数组元素的数量来确定该数组的长度,代码如下所示:

    //声明一个整型数组

    //用具体值初始化每个元素

    //容量由初始化值的数量决定

    array := [...]int{10, 20, 30, 40, 50}
    如果知道数组的长度而且准备给每个值都指定具体值,就可以使用下面这种语法:

    //声明一个有五个元素的数组

    //用具体值初始化索引为 1 和 2 的元素

    //其余元素保持零值

    array := [5]int{1: 10, 2: 20}
    目录
    目录 第1篇基础篇 第1章为什么要使用Go语言 1.1Go语言的产生背景 1.2Go语言的主要特点以及使用Go语言开发的优势 1.2.1Go语言的优势 1.2.2Go语言的设计原则 1.2.3Go语言的特点 本章小结 课后练习 第2章Go语言开发环境 2.1Go安装 2.2开发工具 2.2.1LiteIDE 2.2.2Goland 2.2.3Eclipse 2.2.4Sublime Text 2.3Go语言中的开发包 2.3.1Go语言标准库 2.3.2常用包介绍 2.3.3其他包 本章小结 课后练习 第3章“Hello World”程序实现 3.1Go语言开发的基本规则 3.1.1**个Go程序 3.1.2包及其导入 3.1.3变量 3.1.4常量 3.1.5注释 3.2基本数据类型 3.2.1布尔类型 3.2.2整型类型 3.2.3浮点类型 3.2.4复数类型 3.2.5字符串类型 3.3派生数据类型 3.4运算符 3.4.1算术运算符 3.4.2关系运算符 3.4.3逻辑运算符 3.4.4按位运算符 3.4.5赋值运算符 3.4.6其他(杂项)运算符 3.5类型转换与类型别名 本章小结 课后练习 第2篇核心篇 第4章流程控制 4.1选择结构 4.1.1条件语句 4.1.2switch语句 4.2循环结构 4.2.1for语句 4.2.2range 4.3跳转语句 4.3.1break和continue 4.3.2goto 本章小结 课后练习 第5章数组、切片和映射 5.1数组 5.1.1声明与初始化 5.1.2元素访问 5.1.3值类型 5.2切片 5.2.1创建与初始化 5.2.2使用切片 5.3映射 5.3.1创建和初始化 5.3.2使用映射 本章小结 课后练习 第6章string操作 6.1string介绍 6.2连接字符串 6.2.1字符串的连接方式 6.2.2连接方式性能比较 6.3解析字符串 6.3.1遍历字符串 6.3.2字符串操作 6.4检查字符串长度 6.4.1调用bytes.Count()函数 6.4.2调用strings.Count()函数 6.4.3调用utf8.RuneCountInString()函数 6.5数据复制 本章小结 课后练习 第7章函数 7.1创建一个简单函数 7.2复杂函数 7.2.1带参数的函数 7.2.2含返回值的函数 7.2.3含多个返回值的函数 7.2.4含多个参数的函数 7.3匿名函数和闭包 7.4递归函数 本章小结 课后练习 第8章指针 8.1指针的定义 8.2Go语言中的指针 8.2.1Go语言指针基本操作 8.2.2Go语言new函数 8.2.3Go语言指针数组 8.2.4Go语言指针作为函数参数 本章小结 课后练习 第9章结构体和方法 9.1结构体 9.1.1什么是结构体 9.1.2创建一个结构体 9.1.3嵌入式结构体 9.2方法 9.2.1什么是方法 9.2.2如何创建一个方法 9.2.3方法与封装 9.2.4嵌入式结构体中的方法 本章小结 课后练习 第10章接口 10.1接口的定义 10.2接口的实现 10.3空接口 10.4类型断言 10.5类型查询 本章小结 课后练习 第11章并发 11.1协程 11.1.1协程简单应用 11.1.2协程与阻塞 11.1.3NewTimer与NewTicker 11.2同步协程 11.2.1WaitGroup 11.2.2Cond 11.2.3Once 11.3通道 11.3.1通道定义 11.3.2通道的缓冲机制 11.3.3通道的close 11.3.4select 11.3.5协程与通道结合 本章小结 课后练习 第3篇提高篇 第12章文件操作 12.1写数据到文件 12.2从文件中读取数据 12.2.1创建文件 12.2.2打开文件 12.2.3读文件 12.3文件的复制 12.3.1使用Go语言内建的Copy()函数 12.3.2使用Go语言内建的CopyN()函数 12.3.3文件的读入与写出 本章小结 课后练习 第13章错误处理与日志 13.1错误处理 13.1.1定义错误 13.1.2打印错误 13.2defer()、panic()、recover()函数 13.2.1defer()函数 13.2.2panic()函数 13.2.3recover()函数 13.3日志 13.4举例结合使用错误处理方法和日志 本章小结 课后练习 第14章创建自己的go包 14.1创建一个go包 14.2go包的导入方式 14.2.1相对路径导入 14.2.2**路径导入 本章小结 课后练习 第4篇应用篇 第15章Go语言编码 15.1Base64编码 15.2十六进制编码 15.3JSON编码 15.4XML编解码 15.4.1XML编码 15.4.2XML解码 15.5CSV编码 本章小结 课后练习 第16章数据库编程 16.1Go语言与数据库 16.2安装MySQL 16.3MySQL连接 16.4连接测试 16.5数据查询 16.5.1已知数据表结构时查询数据 16.5.2未知数据表结构时查询数据 本章小结 课后练习

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外