水木
水木
发布于 2024-08-30 / 14 阅读
0

精通Go语言(第2版)

链接: https://pan.baidu.com/s/1w7qokLXjQe2Xvq5e1qqumA?pwd=hy6u 提取码: hy6u

出版社: 清华大学出版社
ISBN:9787302594857
版次:2
商品编码:13543938
品牌:清华大学
包装:平装
开本:16开
出版时间:2021-12-01
用纸:胶版纸
页数:718
字数:929000
产品特色

内容简介

《精通Go语言(第2版)》详细阐述了与Go语言相关的基本解决方案,主要包括Go语言和操作系统,理解Go语言的内部机制,处理Go语言中的基本数据类型,组合类型的使用,利用数据结构改进Go代码,Go包和函数,反射和接口,UNIX系统编程,Go语言中的并发编程—协程、通道和管道,Go语言的并发性—高级话题,代码测试、优化和分析,网络编程基础知识,网络编程—构建自己的服务器和客户端,Go语言中的机器学习等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。




前言/序言

前 言

  本书旨在帮助读者成为一名更加优秀的Go语言开发者。

  本书涵盖了许多令人激动的主题,包括与Go语言机器学习相关的新增章节,以及与Viper和Cobra Go包、gRPC、Docker镜像协同操作、YAML文件协同操作、go/scanner和go/token包协同操作、从Go语言中生成WebAssembly代码相关的信息和示例。

适用读者

  本书适用于希望进一步提升编程水平的中级Go程序员和Go语言编程爱好者;此外,本书也适用于具有一定编程经验的使用其他语言的开发人员,他们希望了解Go语言,但并不打算从for循环开始从头学起。

本书内容

  第1章首先将介绍Go语言的历史和优点,随后将描述godoc应用程序并解释如何编译和执行Go程序。接下来,本章将考查如何显示输出结果、获取用户输入内容、与程序的命令行参数协调工作、使用日志文件。最后,本章还将讨论错误处理机制,该机制在Go语言中饰演了重要的角色。

  第2章首先将讨论Go垃圾收集及其操作方式,随后将介绍不安全的代码、unsafe包、如何在Go语言程序中调用C语言代码、如何从C语言程序中调用Go代码。随后,本章将依次展示defer关键字的用法、strace(1)和dtrace(1)实用程序。在本章其余部分中,我们还将学习如何获取与Go环境相关的信息、Go汇编器的使用以及如何从Go语言中生成WebAssembly。

  第3章将讨论Go语言提供的数据类型,其中包括数组、切片、映射、Go指针、常量、循环,以及与日期和时间的协同工作方式。读者不应错过本章中的精彩内容。

  第4章在介绍元组、字符串、rune、字节切片和字符串字面值之前首先将考查Go语言结构和关键字struct。本章其余内容则将阐述正则表达式和模式匹配、switch语句、strings包、math/big包、Go语言中的键-值开发、XML协同工作方式以及JSON文件。

  第5章将讨论当Go语言提供的结构不适用于特定问题时,如何开发自己的数据结构,包括二叉树、哈希表、链表、队列、栈及其优点。除此之外,本章还将讲解container标准Go语言包中结构的应用,以及如何使用Go语言破解Sudoku谜语以及生成随机数。

  第6章将讨论包和函数,包括init()函数、syscall标准Go包、text/template包和html/template包。另外,本章还将进一步展示go/scanner、go/parser和go/token高级包的使用。不难发现,本章将极大地提升Go语言开发人员的编程技能。

  第7章将讨论Go语言中3个高级概念,即反射、接口和类型方法。除此之外,本章还将介绍Go语言的面向对象功能,以及如何利用Delve调试Go程序。

  第8章将讨论Go语言中的系统编程,其中涉及与命令行参数协同工作的flag包、处理UNIX信号、文件输入和输出、bytes包、io.Reader和io.Writer接口,以及Viper和Cobra Go包的使用。

  第9章将讨论协程、通道和管道,这也是实现并发的Go语言方式。此外,本章还将学习进程、线程和协程之间的差别、sync包和Go调度器的操作方式。

  第10章将在第9章的基础上继续探讨协程和通道。读者将学习更多关于Go调度器、共享内存、互斥体、sync.Mutex类型和sync.RWMutex类型方面的知识。本章最后一部分内容将阐述工作池,以及如何监测竞争条件。

  第11章将介绍代码测试机制、代码优化和代码分析、交叉编译、生成文档Go代码基准测试、创建示例函数、查找不可访问的Go代码。

  第12章将介绍net/http包,以及如何在Go语言中开发Web客户端和Web服务,此外还包括http.Response、http.Request、http.Transport结构的使用和http.NewServeMux类型。读者甚至还将学习如何在Go语言中开发一个完整的站点。进一步讲,本章将学习如何读取网络接口的配置信息,以及如何在Go语言中执行DNS查找。除此之外,我们还将学习如何在Go语言的基础上使用gRPC。

  第13章将讨论如何与HTTPS流量协同工作、利用net包提供的各项功能在Go语言中创建UDP和TCP服务器和客户端。本章其他主题还包括创建RPC客户端和服务器、在Go语言中开发TCP并发服务器和读取原始网络包。

  第14章将介绍Go语言中的机器学习,包括分类、聚类、异常检测、异常值、神经网络、TensorFlow,以及Go语言中与Apache Kafka的协同工作方式。

  本书可被划分为3个逻辑部分。其中,第1部分内容深入考查某些重要的Go语言概念,包括用户输入和输出、下载外部Go语言包、编译Go代码、从Go语言程序中调用C代码、从Go语言中创建WebAssembly、使用Go语言的基本类型和Go语言的复合类型。

  第2部分内容包括第5~7章,主要处理包和模块中的Go语言代码组织问题、Go语言的项目设计以及Go语言中的某些高级特性。

  第3部分内容包括第8~14章,主要处理Go语言中的一些可操作问题。其中,第8~11章将讨论Go语言中的系统编程、Go语言中的并发编程、代码测试、优化和分析;第12~14章将介绍网络编程和Go语言中的机器学习。

  本书内容涉及Go和WebAssembly、基于Go语言的Docker、利用Viper和Cobra包创建专业的命令行工具、解析JSON和YAML记录、矩阵计算、与Sudoku协调工作、go/scanner和go/token包、处理git(1)和GitHub、atomic包、gRPC和Go语言以及HTTPS。

  本书示例程序短小而完整,旨在阐述相关概念。这包含两方面的优点:首先,读者在学习某种技术时无须查看冗长的代码列表;其次,当创建自己的应用程序和实用程序时,读者可使用这些代码作为起始点。

?提示:

  我们已经了解到容器和Docker的重要性,因而本书中包括的各种Go执行文件示例均在Docker镜像中加以使用—Docker镜像可方便地部署服务器应用程序。

技术需求