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

目录 (概要)如何使用这本书:前言 xxvii1 让我们开始吧:语法基础 12 接下来运行哪些代码:条件和循环 313 调用:函数 794 代码集:包 1135 列表:数组 1496 追加的问题:切片 1757 标签数据:映射 2058 构建存储:struct 2319 我喜欢的类型:定义类型 26510 保密:封装和嵌入 28911 你能做什么:接口 32112 重新站起来:从失败中恢复 34913 分享工作:goroutine和 channel 37914 代码的质量保证:自动化测试 40115 响应请求:Web应用程序 42516 要遵循的模式:HTML模板 445A 理解os.OpenFile:打开文件 481B 有六件事我们没有涉及:剩下的内容 495目录 (真正的目录) 如何使用这本书前言你的大脑如何看待Go。在这里,你试图学习一些东西,而你的大脑 在帮你的忙,确保学习不会停滞不前。你的大脑在想:“最好给更重要的 事情留点儿空间,比如避开哪些野生动物,裸体滑雪是否是个坏主意。” 那么,你如何欺骗你的大脑,让它认为你的生活依赖于如何用Go编程呢?这本书是给谁看的 xxviii 我们知道你在想什么 xxix 我们知道你的大脑在想什么 xxix 元认知:思考“何为思考” xxxi 我们是这样做的 xxxii 说明 xxxiv 致谢 xxxv1让我们开始吧 语法基础准备好给你的软件充电了吗?你想要一种编译速度快的简单编程语言吗?它跑 得快吗?它可以很容易地将你的工作分发给用户吗?那就准备好学习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 true3 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工具箱 1104 代码集 包是时候整理一下了。到目前为止,我们一直将所有代码放在一个文件中。 随着我们的程序变得越来越大、越来越复杂,这很快就会变得一团糟。在本章中,我们将向你展示如何创建自己的包,以帮助将相关代码集中放在 一个地方。但是包不仅仅对组织结构有益,它还是在程序之间共享代码的一种简单方法,同时也是与其他开发人员共享代码的一种简单方法。不同的程序,相同的函数 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 gobinhi pkgsrcgreetinggreeting.go himain.go5 列表 数组很多程序都处理列表。地址列表、电话号码列表、产品列表。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索引36 追加的问题 切片我们已经知道了无法将更多的元素增加到一个数组中。对于程序的确是个问题。因为我们无法提前知道文件中包含多少个块。而这就是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工具箱 227Carlos DiazAmber Graham Brian MartinMikey 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字段的

以head开头的计算机语言,Head First Go语言程序设计相关推荐

  1. c语言编程软件有个a开头的,厦门理工软件c语言程序设计A卷及答案

    考 生 信 息 栏 系 专业 级 班级 姓名 学号 装 订 线 厦门理工学院试卷 2010 -2011 学年 第 1 学期 出卷负责人_ _审核人__ ____打印审核人_________ 课程名称 ...

  2. 计算机语言发展史及Java语言简介

     计算机语言发展史及Java语言简介 一 计算机语言发展史 1第一代语言 第一代语言或者机器语言是一种低级的面向计算机的程序设计语言,使用0和1表示各种指令. 2 第二代语言 汇编语言. 3 第三 ...

  3. a开头的计算机语言,我们刚开始接触计算机语言大多从Hello world 开始

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 char szClassName[] = "MainWnd"; HINSTANCE hInstance; int WINAPI Win ...

  4. c语言编译开头,#includestdio.h,为什么C语言代码开头都有这一行?

    作者 闫小林 白天搬砖,晚上做梦.我有故事,你有酒么? #include是在程序编译之前要进行处理的的内容,因此也称为预处理命令. 先介绍下include,include是一个计算机专业术语,指C/C ...

  5. c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc

    C语言函数大全-s开头-完整版 C语言函数大全(s开头) 函数名: sbrk 功能: 改变数据段空间位置 用法: char *sbrk(int incr); 程序例: #include#include ...

  6. python语言的单行注释以井号开头_【学习】Python语言入门

    Python是一门具有强类型(即变量类型是强制要求的).动态性.隐式类型(不需要做变量声明).大小写敏感(var和VAR代表了不同的变量)以及面向对象(一切皆为对象)等特点的编程语言. 语法 Pyth ...

  7. c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?

    stdio.h 哪些 是 头文件,里面包含一些常用的 函数 例如 stdio.h里面有 scanf();printf()这些函数,没有stdio就不能用这些函数 在C语言家族程序中,头文件被大量使用. ...

  8. c语言标识符的开头字母能不能大写,C语言-标识符

    标识符可以简单地理解为一个名字,用来表示变量名.常量名.函数名以及数组名等. 在C语言中标识符可以设定容易理解的名字,但要遵循一定的规则,具体规则如下: (1)所有的标识符必须以字母或下划线开头,而不 ...

  9. c语言标识符的开头字母能不能大写,c语言标识符(c语言标识符的定义)

    标识符:是用户编程时使用的名字.我们指定某个东西.人,都要用到它,他或她的名字:在数学中解方程时,我们也常常用到这样或那样的变量名或函数名.同样的道理. %d\n",a,b,c,d): } 里面哪些是 ...

最新文章

  1. 应用量化时代 | 微服务架构的服务治理之路
  2. Primality Test 素数,打表
  3. k均值的损失函数_K-Means算法的实现
  4. 函数的返回竟然能作为左值
  5. 三菱plc可以用c语言编程吗,三菱PLC高手进-c语言编程题库
  6. 从无线安全到内网渗透[1]
  7. scrt_sfx安装
  8. 深度学习 | 深度学习算法中英文对照表
  9. 用Java实现图像识别_只需要这三步,用Java也能图片识别
  10. 世界名牌CD机解码芯片大全
  11. 使用M25或M26进行FTP文件下载的程序设计与实现
  12. 使用postman测试图片上传
  13. 程序员转行去做售前、咨询
  14. [SPRD CAMERA] 5 HAL Camera open流程二
  15. 2个 windows 下的网络测试工具
  16. JS - 4 - 数组 Array - API(slice、splice、shift、)
  17. 【操作系统基础】操作系统的分类与发展
  18. xampp 下载地址
  19. 计算机房地板厚度,机房地板尺寸一般是多少?
  20. 体重指数计算器(中文版)

热门文章

  1. 【Cocos2d-X】实现类似于我叫MT的游戏加速功能
  2. 系统GHOST使用操作
  3. shell学习心得笔记系列一 文本处理三剑客
  4. cmd停止nginx服务
  5. PyTorch使用快速梯度符号攻击(FGSM)实现对抗性样本生成(附源码和数据集MNIST手写数字)
  6. 抽象语法树 c语言,AST抽象语法树
  7. 数据结构——【堆】详解
  8. python实现美国国家气候数据中心NCDC预处理,按年重采样为年度数据,并保存为Excel格式
  9. SPFA的SLF与LLL优化
  10. php中=%3e = 区别,用过的人来讲讲卡萨帝c1hd10g3lu1和c1hd10g3elu1哪个值得买?区别有没有?有没有内幕啥的...