• HeadFirstGo语言程序设计
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

HeadFirstGo语言程序设计

正版品相完好,套书和多封面版本咨询客服后再下单

73.64 4.9折 149 九品

仅1件

北京海淀
认证卖家担保交易快速发货售后保障

作者[美]杰伊·麦克格瑞恩(Jay McGavren) 著;刘红泉 王佳 译

出版社机械工业出版社

出版时间2020-09

版次1

装帧平装

上书时间2024-05-11

新起点书店

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 [美]杰伊·麦克格瑞恩(Jay McGavren) 著;刘红泉 王佳 译
  • 出版社 机械工业出版社
  • 出版时间 2020-09
  • 版次 1
  • ISBN 9787111664932
  • 定价 149.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 560页
【内容简介】

Go是为高性能网络和多处理而设计的, 但与python和javascript一样,该语言易于阅读和使用。通过这本实用的实践指南,读者将学习如何使用演示实际语言的清晰示例来编写Go代码。*重要的是,读者将会了解到用人单位希望入门级Go开发人员所知晓的惯例和技术。主要内容包括语法基础、条件和循环、函数、包、数组、映射、结构、封装和嵌入、接口、故障恢复、共享、自动化测试、Web应用程序等。

【目录】
目录 (概要) 

如何使用这本书:前言 xxvii 

1 让我们开始吧:语法基础 1 

2 接下来运行哪些代码:条件和循环 31 

3 调用:函数 79 

4 代码集:包 113 

5 列表:数组 149 

6 追加的问题:切片 175 

7 标签数据:映射 205 

8 构建存储:struct 231 

9 我喜欢的类型:定义类型 265 

10 保密:封装和嵌入 289 

11 你能做什么:接口 321 

12 重新站起来:从失败中恢复 349 

13 分享工作:goroutine和 channel 379 

14 代码的质量保证:自动化测试 401 

15 响应请求:Web应用程序 425 

16 要遵循的模式:HTML模板 445 

A 理解os.OpenFile:打开文件 481 

B 有六件事我们没有涉及:剩下的内容 495 

目录 (真正的目录) 

如何使用这本书 

前言 

你的大脑如何看待Go。在这里,你试图学习一些东西,而你的大脑 在帮你的忙,确保学习不会停滞不前。你的大脑在想:“最好给更重要的 事情留点儿空间,比如避开哪些野生动物,裸体滑雪是否是个坏主意。” 那么,你如何欺骗你的大脑,让它认为你的生活依赖于如何用Go编程呢? 

这本书是给谁看的 xxviii 

我们知道你在想什么 xxix 

我们知道你的大脑在想什么 xxix 

元认知:思考“何为思考” xxxi 

我们是这样做的 xxxii 

说明 xxxiv 

致谢 xxxv 

1让我们开始吧 语法基础 

准备好给你的软件充电了吗?你想要一种编译速度快的简单编程语言吗?它跑 得快吗?它可以很容易地将你的工作分发给用户吗?那就准备好学习Go吧! 

Go是一种注重简单性和速度的编程语言。它比其他语言都简单,所以学起来更快。它 可以让你利用当今多核计算机处理器的能力,使你的程序运行得更快。本章将向你展 示所有Go的功能,这些功能将使你作为开发人员的生活更轻松,并使你的用户更快乐。 

准备好,出发 2 

Go Playground 3 

这一切意味着什么 4 

如果出了问题怎么办 5 

调用函数 7 

Println函数 7 

使用其他包中的函数 8 

函数返回值 9 

Go程序模板 11 

字符串 11 

符文 12 

布尔值 12 

数字 13 

数学运算与比较 13 

类型 14 

声明变量 16 

零值 17 

短变量声明 19 

命名规则 21 

转换 22 

在你的计算机上安装Go 25 

编译Go代码 26 

Go工具 27 

使用“go run”快速尝试代码 27 

你的Go 工具箱 28 

 package main import "fmt" func main() { 

 } 

fmt.Println( ) 

 "Hello, Go!" 

 Hello, Go! 

 1+ 2 

 true 



 4 < 6 

 viii 

'?' 

 1174 输出 

2 接下来运行哪些代码 

条件和循环 

每个程序都有仅在特定情况下适用的部分。“如果出现错误,应该运行 这段代码。否则,应该运行其他代码。”几乎每个程序都包含只有在特定条件为真时才 应该运行的代码。因此,几乎每种编程语言都提供条件语句,让你决定是否运行某段代 码。Go也不例外。 

你可能还需要重复运行代码中的某些部分。与大多数语言一样,Go提供了循环, 可以多次运行某部分代码。在本章中,我们将学习使用条件句和循环! 

调用方法 32 

评分 34 

函数或方法的多个返回值 36 

选项1:使用空白标识符忽略错误返回值 37 

选项2:处理错误 38 

条件 39 

有条件地记录致命错误 42 

避免遮盖名字 44 

将字符串转换为数字 46 

块 49 

块和变量的作用域 50 

我们已经完成了评分程序 52 

短变量声明中只有一个变量必须是新的 54 

让我们创建一个游戏 55 

包名与导入路径 56 

生成随机数 57 

从键盘获取整数 59 

将猜测与目标进行比较 60 

循环 61 

初始化和标志(post)语句是可选的 63 

在我们的猜谜游戏中使用循环 66 

中断我们的猜测循环 69 

显示目标 70 

恭喜你,游戏结束了 72 

你的Go工具箱 74 

条件语句块 结束 

条件语句块 开始 

条件语句块主体 

“if”关键字 

条件 

if 1<  2 { 

fmt.Println("It's true!") 



3 调用 

函数 

你错过了机会。你一直像专业人士一样调用函数。但你唯一能调用的函数是 Go为你定义的函数。现在,轮到你了。我们将向你展示如何创建你自己的函数。 我们将学习如何声明带参数和不带参数的函数。我们将声明返回单个值的函数, 并且我们将学习如何返回多个值,以便我们可以指示何时发生了错误。我们还将 学习指针,它允许我们进行更有效的内存函数的调用。 

一些重复的代码 80 

使用Printf和Sprintf格式化输出 81 

格式化动词 82 

格式化值宽度 83 

格式化小数宽度 84 

在油漆计算器中使用Printf 85 

声明函数 86 

声明函数参数 87 

在油漆计算器中使用函数 88 

函数和变量的作用域 90 

函数返回值 91 

在油漆计算器中使用返回值 93 

paintNeeded函数需要错误处理 95 

错误值 96 

声明多个返回值 97 

在paintNeeded函数中使用多个返回值 98 

始终处理错误 99 

函数形参接收实参的副本 102 

指针 103 

指针类型 104 

获取或更改指针的值 105 

函数指针 107 

使用指针修复我们的“double”函数 108 

你的Go工具箱 110 

4 代码集 

包 

是时候整理一下了。到目前为止,我们一直将所有代码放在一个文件中。 随着我们的程序变得越来越大、越来越复杂,这很快就会变得一团糟。 

在本章中,我们将向你展示如何创建自己的包,以帮助将相关代码集中放在 一个地方。但是包不仅仅对组织结构有益,它还是在程序之间共享代码的一种简单方法,同时也是与其他开发人员共享代码的一种简单方法。 

不同的程序,相同的函数 114 

使用包在程序之间共享代码 116 

Go工作区目录保存包代码 117 

创建一个新包 118 

将包导入程序 119 

包使用相同的文件布局 120 

包命名规范 123 

包限定符 123 

将共享代码移动到包中 124 

常量 126 

嵌套的包目录和导入路径 128 

使用“go install”安装程序可执行文件 130 

使用GOPATH环境变量更改工作区 131 

设置GOPATH 132 

发布包 133 

使用“go get”下载和安装包 137 

使用“go doc”阅读包文档 139 

使用doc注释记录包 141 

在Web浏览器中查看文档 143 

使用“godoc”提供HTML文档 144 

“godoc”服务器包含你的包 145 

你的Go工具箱 146 

 go 

bin 

hi pkg 

src 

greeting 

greeting.go hi 

main.go 

5 列表 

数组 

很多程序都处理列表。地址列表、电话号码列表、产品列表。Go有两种内置 的存储列表的方法。本章将介绍第一种:数组。你将了解如何创建数组,如何用数 据填充数组,以及如何重新获取这些数据。然后你将学习如何处理数组中的所有元 素,首先是使用for循环的困难些的方法,然后是使用for...range循环的简单 些的方法。 

数组保存值的集合 150 

数组中的零值 152 

数组字面量 153 

“fmt”包中的函数知道如何处理数组 154 

在循环里访问数组元素 155 

使用“len”函数检查数组长度 156 

使用“for ... range”安全遍历数组 157 

在“for ... range”循环中使用空白标识符 158 

得到数组中数字之和 159 

得到数组中数字的平均值 161 

读取文本文件 163 

将文本文件读入数组 166 

更新我们的“average”程序来读取文本文件 168 

我们的程序只能处理三个值 170 

你的Go工具箱 172 

数组中将要存储的元素类型 

数组中将要存储的元素个数 

 var myArray [4]string 

索引0 

索引1 

索引2 

索引3 

6 追加的问题 

切片 

我们已经知道了无法将更多的元素增加到一个数组中。对于程序的确是个问题。因为我们无法提前知道文件中包含多少个块。而这就是Go中的切片 (slice)的用武之地。切片是一个可以通过增长来保存额外数据的集合类型,正好能够满足程序的需要!我们将看到切片是如何让用户以简洁的方式在程序中提供 数据的,以及如何帮助你写出更加方便调用的函数。 

切片 176 

切片字面量 177 

切片运算符 180 

底层数组 182 

修改底层数组,修改切片 183 

使用“append”函数在切片上添加数据 184 

切片和零值 186 

使用切片和“append”读取额外的文件行 187 

尝试我们改进后的程序 189 

出错时返回nil值切片 190 

命令行参数 191 

从os.Args切片获取命令行参数 192 

切片运算符可用于其他切片 193 

更新程序以使用命令行参数 194 

可变长参数函数 195 

使用可变长参数函数 197 

使用可变长参数函数计算平均值 198 

向可变长参数函数传递一个切片 199 

切片拯救了我们 201 

你的Go工具箱 202 

切片 

底层数组 

数组1 

切片1 

 {"a", "b", "c", "d", "e"} 

7 标签数据 

映射 

堆积物品是个好方法,直到你需要再次找到它。你已经看到了如何使用 切片和数组来创建一列数据。但是当你需要使用一个特定的值时会怎样?为了找 到它,你需要从数组或者切片的开头开始,查看每一个元素。 

如果有一种集合,其中的每个值都有个标签在上面,那么你就可以快速找到你需 要的值!在这一章,我们来看映射,它就是做这个的。 

计票 206 

从文件中读取名字 207 

使用困难的切片方法对名字计数 209 

映射 212 

映射字面量 214 

映射中的零值 215 

映射变量的零值是nil 215 

如何区分已经赋值的值和零值 216 

使用“delete”函数删除键/值对 218 

使用映射来更新计票程序 219 

对映射进行for ... range循环 221 

for ... range循环以随机顺序处理映射 223 

使用for ... range循环来更新计票程序 224 

计票程序完成 225 

你的Go工具箱 227 

Carlos Diaz 

Amber Graham Brian Martin 

Mikey Moose 

键可以使你快速 找到数据! 

8 构建存储 

struct 

有时你需要保存超过一种类型的数据。我们学习了切片,它能够保存 一组数据。然后学习了映射,它能保存一组键和一组值。这两种数据结构都只 能保存一种类型。有时,你需要一组不同类型的数据,例如邮件地址,混合了 街道名(字符串类型)和邮政编码(整型);又如学生记录,混合保存学生名 字和成绩(浮点数)。你无法用切片或者映射来保存。但是你可以使用其他的名为struct的类型来保存。本章会介绍struct的所有信息! 

切片和映射保存一种类型的值 232 

struct是由多种类型的值构建的 233 

使用点运算符访问struct字段 234 

在struct中保存订阅者的数据 235 

定义类型和struct 236 

为杂志订阅者定义一个类型 238 

与函数一起使用已定义类型 239 

使用函数修改struct 242 

通过指针访问struct的字段 244 

使用指针传递大型struct 246 

将struct类型移动到另一个包 248 

定义类型的名称首字母必须大写才能导出该类型 249 

struct字段的
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP