Go 入门指南(The way to Go)第4章:基本结构和基本数据类型 4.1 文件名、关键字与标识符 4.2 Go 程序的基本结构和要素 4.3 常量 4.4 变量 4.5 基本类型和运算符 4.6 字符串 4.7 strings 和 strconv 包 4.8 时间和日期 4.9 指针 - 2 - 本文档使用 书栈(BookStack.CN) 构建 第5章:控制结构 5.1 if-else 结构 5.2 测试多返回值函数的错误 5.3 1 介绍 6.2 函数参数与返回值 6.3 传递变长参数 6.4 defer 和追踪 6.5 内置函数 6.6 递归函数 6.7 将函数作为参数 6.8 闭包 6.9 应用闭包:将函数作为返回值 6.10 使用闭包调试 6.11 计算函数执行时间 6.12 通过内存缓存来提升性能 第7章:数组与切片 7.1 声明和初始化 7.2 切片 7.3 For-range 结构 map 的键值对调 第9章:包(package) 9.1 标准库概述 9.2 regexp 包 9.3 锁和 sync 包 - 3 - 本文档使用 书栈(BookStack.CN) 构建 9.4 精密计算和 big 包 9.5 自定义包和可见性 9.6 为自定义包使用 godoc 9.7 使用 go install 安装自定义包 9.8 自定义包的目录结构、go install0 码力 | 466 页 | 4.44 MB | 1 年前3
Go 入门指南(The way to Go)Engine)方面的应用(第 20 章)。在本书的最后一章(第 21 章),我们会讨论一些在全世界范围内已经将 Go 语言投入实际开发 的公司和组织。本书将会在最后给出一些对 Go 语言爱好者的引用,Go 相关包和工具的参考,以及章节 练习的答案和所有参考资源和文献的清单。 Go 语言有一个被称之为 “没有废物” 的宗旨,就是将一切没有必要的东西都去掉,不能去掉的就无底线 地简化,同时追求最大程度的自动化。他完美地诠释了敏捷编程的 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过 现阶段的 Go 语言已经提供了大量有关 Web 方面的功能,我们可以通过它强大的 http 和 template 包来 达到 Web 应用的 GUI 实现。 我们会经常涉及到一些关于 Go 语言的编码规范,了解和使用这些已经被广泛认同的规范应该是你学习阶 段最重要的实践。我会在书中尽量使用已经讲解的概念或者技巧来解释相关的代码示例,以避免你在不了 和运行实现上。Ian Lance Taylor 也加入到了开发团队中,并于 2008 年 5 月创建了一个 gcc 前端。 Russ Cox 加入开发团队后着手语言和类库方面的开发,也就是 Go 语言的标准包。在 2009 年 10 月 30 日,Rob Pike 以 Google Techtalk 的形式第一次向人们宣告了 Go 语言的存在。 直到 2009 年 11 月 10 日,开发团队将 Go0 码力 | 380 页 | 2.97 MB | 1 年前3
Hello 算法 1.0.0b1 Golang版渐渐也对这个问题好奇了起来。 两眼一抹黑地刷题应该是最受欢迎的方式,简单粗暴且有效。然而,刷题就如同玩“扫雷”游戏,自学能力强 的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本 ,可以通过命令行来克隆代码仓。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以点击“Download ZIP”直接下载代码压缩包,本地解压即可。 Figure 0‑5. 克隆仓库与下载代码 第三步:运行源代码。若代码块的顶部标有文件名称,则可在仓库 codes 文件夹中找到对应的 源代码文件。源 代码文件可以帮助你省去不 以下是基于链表实现栈的示例代码。 // === File: linkedlist_stack.go === /* 基于链表实现的栈 */ type linkedListStack struct { // 使用内置包 list 来实现栈 data *list.List } /* 初始化栈 */ func newLinkedListStack() *linkedListStack { return &linkedListStack{0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版渐渐也对这个问题好奇了起来。 两眼一抹黑地刷题应该是最受欢迎的方式,简单粗暴且有效。然而,刷题就如同玩“扫雷”游戏,自学能力强 的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本 ,可以通过命令行来克隆代码仓。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以点击“Download ZIP”直接下载代码压缩包,本地解压即可。 Figure 0‑5. 克隆仓库与下载代码 第三步:运行源代码。若代码块的顶部标有文件名称,则可在仓库 codes 文件夹中找到对应的 源代码文件。源 代码文件可以帮助你省去不 以下是基于链表实现栈的示例代码。 // === File: linkedlist_stack.go === /* 基于链表实现的栈 */ type linkedListStack struct { // 使用内置包 list 来实现栈 data *list.List } /* 初始化栈 */ func newLinkedListStack() *linkedListStack { return &linkedListStack{0 码力 | 202 页 | 15.73 MB | 1 年前3
Go语言基础
Golang FundamentsAnd Composition Design) – 接口赋予程序结构。 – 接口鼓励通过组合进行设计。 – 接口使得并强制清晰划分组件职责。 – 接口的标准化可以建立清晰和一致的期望。 • 面向包的设计(Package-Oriented Design) • 并发软件设计(Concurrent Software Design) • 管道设计(Channel Design) Golang-设计哲学 tour 浏览 – “基础” • 包,变量,函数 • 流程控制语句 • 指针、结构、数组与切片、Map – 方法与接口 – 并发 Hello world! 包与子包 • 包的代码在哪里? – Go标准包,如:math/rand • https://github.com/golang/go/tree/master/src/math/rand – 第三方包,如:github.com/spf13/cobra com/spf13/cobra – 包名必须小写且符合Unix文件命令规则 – 包名全称,规则:[git仓库]/[用户]/[仓库路径] • 包里文件 – 源代码 – 测试代码 – API文档 – 其他资源文件 按规则可找到源代码,方便阅读 包导出名 • 包中定义的 – 类型 – 常量 – 变量 – 函数 • 如果首字母大写,则是全局可访问的 函数申明 • 使用 func 关键字申明函数 • 在包中定义函数,在函数中不能定义函数0 码力 | 21 页 | 851.30 KB | 1 年前3
Hello 算法 1.1.0 Go版地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰, git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int)0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0 Golang版地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰, git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int)0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰, git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 0 章 前言 www.hello‑algo.com 7 图 0‑4 克隆仓库与下载代码 第三步:运行源代码。如图 0‑5 所示,对于顶部标有文件名称的代码块,我们可以在仓库的 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int)0 码力 | 384 页 | 18.49 MB | 10 月前3
Golang 入门笔记更多Golang资料包:扫码进入Github 1. 算术运算符 算数运算符就是对数值类型的变量进行运算的,比如,加减乘除。在Go中运用非常的多 算数运算符 除法演示 //说明,如果运算的数都是整数,那么除后,将会去除小数位 fmt.Println(10 / 4) //2 var n1 float32 = 10 / 4 fmt.Println(n1) //2 //如果我们希望保留小数,那么就需要有浮点数参与运算 需要参数和表达式的类型匹配 2. strconv .. 返回转换后的字符串 测试案例 fmt.Sprintf strconv 函数 string 类型转换为基本类型 1. 使用 strconv 包的函数 转换函数如下 func ParseBool(str string) (value bool, err error) func ParseInt(s string, base int, bitSize 引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 例子 函数用法 函数作为一另外一个函数的实参 定义:函数定义后可作为另外一个函数的实参数传入 例子 闭包 定义:闭包是匿名函数,可在动态编程中使用 例子 方法 定义:方法就是一个包含了接受者的函数 例子 值类型和引用类型 值类型:基本数据类型 int 系列,bool , string , 数组和结构体0 码力 | 2 页 | 511.29 KB | 1 年前3
Hello 算法 1.0.0b4 Golang版个问题产生了浓厚的兴 趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单直接且有效。然而,刷题就如同玩“扫雷”游戏,自学能力 强的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在挫折中步步退缩。通 读教材书籍也是一种常见做法,但对于面向求职的同学来说,毕业季、投递简历、准备笔试面试已经占据了 大部分精力,厚重的书籍往往变成了一项艰巨的挑战。 如果你也面临类似的困扰 ,可以通过以下命令克隆本仓库。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以点击“Download ZIP”直接下载代码压缩包,然后在本地解压即可。 0. 前言 hello‑algo.com 5 Figure 0‑4. 克隆仓库与下载代码 第三步:运行源代码。如果代码块顶部标有文件名称,则可以在仓库的 codes 文件夹中找到相应的源代码文 以下是基于链表实现栈的示例代码。 // === File: linkedlist_stack.go === /* 基于链表实现的栈 */ type linkedListStack struct { // 使用内置包 list 来实现栈 data *list.List } /* 初始化栈 */ func newLinkedListStack() *linkedListStack { return &linkedListStack{0 码力 | 347 页 | 27.40 MB | 1 年前3
共 39 条
- 1
- 2
- 3
- 4













