![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go 语言从入门到精通
心情第一
请不要假装努力,人生不会陪你演戏
展开
-
第12章 Go语言编译和工具链
Go 语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具等应有尽有。在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的工作。基准测试提供可自定义的计时器和一套基准测试算法,能方便快速地分析一段代码可能存在的 CPU 耗用和内存分配问题。性能分析工具可以将程序的 CPU 耗用、内存分配、竞态问题以图形化方式展现出来。本章内容:12.1go build命令(go语言编译命令)完全攻略Go语言的编译速度非常快。Go..原创 2020-10-27 11:43:40 · 728 阅读 · 0 评论 -
第11章 Go语言文件处理
本章我们将带领大家深入了解一下 Go语言中的文件处理,重点在于文件而非目录或者通用的文件系统,特别是如何读写标准格式(如 XML 和 JSON 格式)的文件以及自定义的纯文本和二进制格式文件。由于前面的内容已覆盖 Go语言的所有特性,现在我们可以灵活地使用 Go语言提供的所有工具。我们会充分利用这种灵活性并利用闭包来避免重复性的代码,同时在某些情况下充分利用 Go语言对面向对象的支持,特别是对为函数添加方法的支持。本章内容:11.1Go语言自定义数据文件对一个程序非常普遍的需求包括维护内部数.原创 2020-10-27 11:38:47 · 699 阅读 · 0 评论 -
第10章 Go语言反射(reflect),Golang反射(reflect)
反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改它们。Go程序在运行期使用reflect包访问程序的反射信息。其它语言中的反射C/C++ 语言没有支持反射功能,只能通过 typeid 提供非常弱化的原创 2020-10-27 11:28:40 · 683 阅读 · 0 评论 -
第09章 Go语言并发,Golang并发
并发指在同一时间内可以执行多个任务。并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等。本章讲解的并发含义属于多线程编程。Go 语言通过编译器运行时(runtime),从语言上支持了并发的特性。Go 语言的并发通过goroutine特性完成。goroutine 类似于线程,但是可以根据需要创建多个 goroutine 并发工作。goroutine 是由 Go 语言的运行时调度完成,而线程是由操作系统调度完成。Go 语言还提供channel在多个 goroutine 间进行通信。gor...原创 2020-10-27 11:21:29 · 1104 阅读 · 0 评论 -
第08章 Go语言包(package),Golang包(package)
Go 语言的源码复用建立在包(package)基础之上。Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,必须同样以包的方式进行引用,本章内容将详细讲解如何导出包的内容及如何导入其他包。Go 语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录(GOPATH)。本章内容:8.1Go语言包的基本概念Go语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。Go语言中为我们提供了很多.原创 2020-10-27 10:52:35 · 1443 阅读 · 0 评论 -
第07章 Go语言接口(interface),Golang接口(interface)
接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程。Go 语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。其它编程语言中的接口接口是一种较为常见的特性,很多语言都有接口特性原创 2020-10-26 19:02:39 · 901 阅读 · 0 评论 -
第06章 Go语言结构体
Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。Go 语言中的类型可以被实例化,使用new或&构造的类型实例的类型是类型的指针。结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段”。字段有以下特性:字段拥有自己的类型和值。 字段名必须唯一。 字段的类型也可以是结构体,甚至是字段所在结构体的类型。关于 Go 语言的类(class)Go 语言中没有“类”的概念,也不支持“类原创 2020-10-26 18:54:15 · 184 阅读 · 0 评论 -
第05章 Go语言函数(Go语言func)
函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率。Go 语言支持普通函数、匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方便。Go 语言的函数属于“一等公民”(first-class),也就是说:函数本身可以作为值进行传递。 支持匿名函数和闭包(closure)。 函数可以满足接口。本章内容:5.1Go语言函数声明(函数定义)函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func、函数.原创 2020-10-26 18:37:08 · 11794 阅读 · 0 评论 -
第04章 流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。Go 语言的常用流程控制有 if 和 for,而 switch 和 goto 主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。本章主要介绍了 Go 语言中的基本流程控制语句,包括分支语句(if 和 switch)、循环(for)和跳转(goto)语句。另外,还有循环控制语句(break 和 continue),前者的功能是中断循环或者跳出 switch 判断,后者的功能是继续 for 的下一个循原创 2020-10-26 18:05:20 · 182 阅读 · 0 评论 -
第03章 Go语言容器(container)
在早期 CPU 都是以单核的形式顺序执行机器指令。Go语言的祖先C语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指:所有的指令都是以串行的方式执行,在相同的时刻有且仅有一个 CPU 在顺序执行程序的指令。随着处理器技术的发展,单核时代以提升处理器频率来提高运行效率的方式遇到了瓶颈,单核 CPU 发展的停滞,给多核 CPU 的发展带来了机遇。相应地,编程语言也开始逐步向并行化的方向发展。虽然一些编程语言的框架在不断地提高多核资源使用效率,例如Java的 Netty 等,但仍然需要开发人员花费大..原创 2020-10-26 16:45:52 · 517 阅读 · 0 评论 -
第02章 Go语言基本语法
Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。接下来从几个方面来具体介绍一下Go语言的特性。语法简单抛开语法样式不谈,单就类型和规则而言,Go 与 C99、C11 相似之处颇多,这也是Go语言被冠以“NextC”名号的重要原因。Go语言的语法处于简单和复杂的两极。C语言简单到你每写下一行代码,都能在脑中想象出编译后的模样,指令如何执行,内存如何分配,等等。而 C 的复杂在于,它有太多隐晦而不着边际的规则,着实让人头疼。相原创 2020-10-26 16:43:37 · 331 阅读 · 0 评论 -
第01章 golang语言
Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”。Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计...原创 2020-10-28 09:21:41 · 1808 阅读 · 0 评论