Go 入门指南(The way to Go)书栈(BookStack.CN) 构建 第5章:控制结构 5.1 if-else 结构 5.2 测试多返回值函数的错误 5.3 switch 结构 5.4 for 结构 5.5 Break 与 continue 5.6 标签与 goto 第6章:函数(function) 6.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 结构 7.4 切片重组(reslice) 7.5 切片的复制与追加 7.6 字符串、数组和切片的应用 第8章:Map 8 接口与动态类型 11.13 总结:Go 中的面向对象 11.14 结构体、集合和高阶函数 第12章:读写数据 12.1 读取用户的输入 12.2 文件读写 12.3 文件拷贝 12.4 从命令行读取参数 12.5 用 buffer 读取文件 - 4 - 本文档使用 书栈(BookStack.CN) 构建 12.6 用切片读写文件 12.7 用 defer 关闭文件 12.8 使用接口的实际例子:fmt0 码力 | 466 页 | 4.44 MB | 1 年前3
Go 入门指南(The way to Go)org Go 语言还有一个运行在 Google App Engine 上的 Go Tour,你也可以通过执行命令 go install go-tour.googlecode.com/hg/gotour 安装到你的本地机器上。对于中文读者,可以访问该 指南的 中文版本,或通过命令 go install https://bitbucket.org/mikespook/go-tour-zh/gotour ) l = 链接器:将项目代码链接到可执行的二进制文件(机器代码) (相关的 C 编译器名称为 6c、8c 和 5c,相关的汇编器名称为 6a、8a 和 5a) 标记(Flags) 是指可以通过命令行设置可选参数来影响编译器或链接器的构建过程或得到一个特殊的 目标结果。 可用的编译器标记如下: flags: -I 针对包的目录搜索 -d 打印声明信息 -e 不限制错误打印的个数 -f 打印栈结构 打印归类后的语法解析树 -x 打印 lex tokens 从 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 go build 和 go install 等命令,而这些指令会自动调用相关的编译器或链接器。 如果你想获得更深层次的信息,你可以在目录 $GOROOT/src/cmd 下找到编译器和链接器的源代 Go入门指南 - 13 - 本文档使用 看云0 码力 | 380 页 | 2.97 MB | 1 年前3
Go Web编程IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3 1.Go环境配置 1.1. Go安装 1.2. GOPATH 与工作空间 1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。 然后设置几个环境变量, export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN 看到如下图片即说明你已经安装成功 7 图1.1 源码安装之后执行Go命令的图 如果出 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境 变中是否包含了Go的安装目录。 Go标准包安装 Go标准包安装 Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然 你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息: export0 码力 | 295 页 | 5.91 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 ? 或者国内官网 ? 下载Go官方工具链, 并按照下载页面中的说 明安装Go官方工具链。 我们也可以使用工具[GoTV](https://go101 个Go工具链版本,并方便和谐地使用它们。 Go官方工具链的版本和其所支持的最高Go语言版本是一致的。 比如,Go官方 工具链1.21.x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具 链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序 安装Go官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go 变量中的第一个路径对应的文件夹。 GOPATH文件夹中的pkg子文件夹用来缓存被本地项目所依赖的Go模块(一 个Go模块为若干Go库包的集合)的版本。 GOBIN环境变量用来指定go install子命令产生的Go应用程序二进制可执 行文件应该存储在何处。 它的默认值为GOPATH文件夹中的bin子目录所对 应的目录路径。 GOBIN路径需配置在PATH环境变量中,以便从任意目录运 行这些Go应用程序。0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 或者国内官网 下载Go官方工具链, 并按照下载页面中的说明 安装Go官方工具链。 我们也可以使用工具[GoTV](https://go101 Go工具链版本,并方便和谐地使用它们。 Go官方工具链的版本和其所支持的最高Go语言版本是一致的。 比如,Go官方 工具链1.21.x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具 链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序 安装Go官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go 中的第一个路径对应的文件夹。 GOPATH文件夹中的pkg子文件夹用来缓存被本地项目所依赖的Go模块(一 个Go模块为若干Go库包的集合)的版本。 GOBIN环境变量用来指定go install子命令产生的Go应用程序二进制可执行 文件应该存储在何处。 它的默认值为GOPATH文件夹中的bin子目录所对应 的目录路径。 GOBIN路径需配置在PATH环境变量中,以便从任意目录运行 这些Go应用程序。0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言101》 所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些 非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网(https://golang.org/doc/install)或者国内官网 (https://golang.google 多个Go工具链版本,并方便和谐地使用它们。 Go官方工具链的版本和其所支持的最高Go语言版本是一致的。 比如,Go官方工具链 1.21.x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具链安 装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序安装Go 官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go 个 路径对应的文件夹。 GOPATH文件夹中的pkg子文件夹用来缓存被本地项目所依赖的Go模块(一个 Go模块为若干Go库包的集合)的版本。 GOBIN环境变量用来指定go install子命令产生的Go应用程序二进制可执行 文件应该存储在何处。 它的默认值为GOPATH文件夹中的bin子目录所对应的 目录路径。 GOBIN路径需配置在PATH环境变量中,以便从任意目录运行这些 Go应用程序。0 码力 | 591 页 | 21.40 MB | 1 年前3
Go基础语法宝典slice 有一些简便的操作 slice 有几个有用的内置函数 map make 、 new 操作 零值 流程控制 if goto for switch 函数 函数的定义 多个返回值 变参 传值与传指针 defer 函数作为值、类型 Panic和Recover main 函数和 init 函数 import 1、相对路径 2、绝对路径 特殊的import 1、点操作 “零值” // 初始化一个字典 rating := map[string]float32{"C":5, "Go":4.5, "Python":4.5, "C++":2 } // map有两个返回值,第二个返回值,如果不存在key,那么ok为false,如果存在ok为true csharpRating, ok := rating["C#"] if ok { fmt.Println("C# 还能迭代操作。它的语法如下: expression1 、 expression2 和 expression3 都是表达式,其中 expression1 和 expression3 是变 量声明或者函数调用返回值之类的, expression2 是用来条件判断, expression1 在循环开始之前调 用, expression3 在每轮循环结束之时调用。 一个例子比上面讲那么多更有用,看看下面的例子吧:0 码力 | 47 页 | 1020.34 KB | 1 年前3
对 Go 程序进行可靠的性能测试概率:频率收敛到的值,性质之一: ● 独立:两个事件互不影响,性质之一: ● 随机变量:是一个函数,参数是所有可能的样本,返回值是这些样本的取值,例如 ● 期望:随机变量以其概率为权重的加权平均值,即 ● 方差:样本取值与期望之间的「距离」,距离定义为差的平方和,即 ● 概率密度函数:是一个函数,参数是随机变量取值,返回值是随机变量取得该值的概率 ● 累积分布函数:随机变量取值小于某个值的概率 ● 正态分布:一种特殊的概率密度函数 列出当前正在等待执行的命令 -shared 在共享模式下获取锁 (默认独占模式) $ perflock -governor 70% go test -test=none -bench=. 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 perflock 的原理 25 在执行命令前,通知 perflock 守护进程,守护进程将0 码力 | 37 页 | 1.23 MB | 1 年前3
Go 2 Generics? A (P)review泛型做到了什么接口做不到的事情? 5 当使用 interface{} 时,a、b、返回值都可以在运行时表现为不同类型,取决于内部 实现如何对参数进行断言: type T interface { ... } func Max(a, b T) T { ... } // T 是接口 当使用泛型时,a、b、返回值必须为同一类型,类型参数施加了这一强制性保障: func Max(a, b T) T com/go" refs/changes/17/187317/15 && git checkout FETCH_HEAD $ go2go 用法: go2go[arguments] 子命令包括: build run test translate 将 .go2 文件翻译为 .go 文件 包引入规则 import "x" 此外还会对某些函数模板进行语法分析可能非常 难。[...] 最后 的模板语法被设计为: template T& index(vector & v, int i) { /*…*/ } 我也严肃的讨论过将返回值放在参数表之后 进而很好的解决语法分析问题, index (vector & v, int i) : T& { /*…*/ } 但大部分人宁愿要一个关 键字来帮助识别模板,[ 0 码力 | 41 页 | 770.62 KB | 1 年前3
Go语言基础
Golang Fundamentssrc/math/rand – 第三方包,如:github.com/spf13/cobra • https://github.com/spf13/cobra – 包名必须小写且符合Unix文件命令规则 – 包名全称,规则:[git仓库]/[用户]/[仓库路径] • 包里文件 – 源代码 – 测试代码 – API文档 – 其他资源文件 按规则可找到源代码,方便阅读 包导出名 • 包中定义的 函数 • 如果首字母大写,则是全局可访问的 函数申明 • 使用 func 关键字申明函数 • 在包中定义函数,在函数中不能定义函数 • 参数类型在参数名的右边 • 支持多值返回 • 支持有名返回值 • 不支持函数重载(静态多态)。相同函数名不 同签名,会被认为函数重复定义 取消重载,避免编程时一个名字多种含义 变量定义与赋值 • 使用 var 关键字申明变量 • 不申明类型,则编译器采用表达式类型推导机制 Go语言入门资源 • 语言概览 – 官方Go指南,gotour – 系统的学习,go语言教程 • 程序结构 – 包/子包(main) • Go源代码 – 函数(main, init) • 命令行工具 • 编程参考与规范 – 官方文档”Effective Go/实效Go编程” – 官方文档,库参考文档, https://godoc.org/ • 中级资源 Ultimate Go – https://github0 码力 | 21 页 | 851.30 KB | 1 年前3
共 36 条
- 1
- 2
- 3
- 4













