![](https://img-blog.csdnimg.cn/dd98c73227a24db18bba6edd007461e2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Golang 基础学习专栏
文章平均质量分 81
Golang 基础学习专栏。
谢TS
持续写了十几年代码,未来也将继续不停写代码的老程序员,后端工程师。
展开
-
Golang 基础学习专栏(总目录)
Golang 基础学习总目录。原创 2023-05-25 20:30:00 · 326 阅读 · 0 评论 -
Golang_23: Go语言 go test 测试
Go 提供了用于测试代码的 go test 子命令,测试框架的相关接口在 testing 包中,官方文档:https://pkg.go.dev/testing 。Go 的测试文件以 _test.go 结尾命名(这些文件会被 go build 忽略),go test 命令会自动查找所有 *_test.go 文件,找到文件中的测试函数,并临时生成一个 main() 函数去调用它,然后编译运行并报告结果,最后清空临时生成的文件。原创 2023-05-27 00:05:21 · 2791 阅读 · 0 评论 -
Golang_22: Go语言 XML 编码 和 解码
Go 内置的 encoding/xml 包实现了一个简单的 XML 1.0 解析器,并且支持命名空间。原创 2023-05-27 00:05:19 · 713 阅读 · 0 评论 -
Golang_21: Go语言 JSON 编码 和 解码
Go 内置的 encoding/json 包实现了 RFC 7159 中定义的 JSON 的编码和解码。JSON 和 Go 数据类型之间的映射在 json.Marshal() 和 json.Unmarshal() 函数的文档中进行了描述。有关 JSON 和 Go 的详细介绍,可以参考:https://go.dev/blog/json。原创 2023-05-27 00:04:33 · 402 阅读 · 0 评论 -
Golang_20: Go语言 外部命令调用(运行 shell 命令)
Go 内置的 os/exec 包用于运行外部命令。它包装了 os.StartProcess 以便更轻松地重新映射 标准输入 和 标准输出、将 I/O 与 管道 连接以及进行其他调整。原创 2023-05-27 00:04:26 · 609 阅读 · 0 评论 -
Golang_19: Go语言 日期时间 与 定时器
Go 语言处理日期时间使用内置的 time 模块。原创 2023-05-26 21:30:00 · 275 阅读 · 0 评论 -
Golang_18: Go语言 正则表达式
Go 语言 正则表达式 处理使用内置的 regexp 模块。原创 2023-05-26 21:15:00 · 444 阅读 · 0 评论 -
Golang_17: Go语言 网络编程:WebSocket 客户端与服务端
Go 内置模块没有对 WebSocket 的支持,可以使用第三方库,推荐 Gorilla WebSocket,它支持 WebSocket 服务端与客户端。原创 2023-05-26 21:00:00 · 1490 阅读 · 0 评论 -
Golang_16: Go语言 网络编程:HTTP/HTTPS Server 服务端
Go 语言内置的 net/http 包除了支持 HTTP 客户端,还支持 HTTP 和 HTTPS 服务端(并且支持 HTTP/2.0 版本的服务端)。原创 2023-05-26 20:45:00 · 697 阅读 · 0 评论 -
Golang_15: Go语言 网络编程:HTTP/HTTPS Client 客户端
Go 语言内置的 net/http 包提供了简洁而又完善的 HTTP 客户端 和 服务端 的实现,并且 客户端 和 服务端 均支持 HTTP/2.0。原创 2023-05-26 20:30:00 · 570 阅读 · 0 评论 -
Golang_14: Go语言 网络编程:TCP 与 UDP(socket 编程)
Go 语言的 net 包为网络 I/O 提供了可一个可移植的接口,包括 TCP/IP、UDP、域名解析 和 Unix域套接字。尽管 net 包提供了对低级网络原语的访问,但大多数情况下只需要使用 Dial()、Listen() 和 Accept() 函数以及相关的 Conn 和 Listener 接口提供的基本方法。crypto/tls 包使用相同的接口实现了 TLS 版本的 Dial() 和 Listen() 功能。原创 2023-05-26 20:15:00 · 538 阅读 · 0 评论 -
Golang_13: Go语言 并发编程:协程(goroutine)、通道(chan)、同步锁(Mutex)、WaitGroup、上下文(context)
Go 语言的并发编程使用 协程(goroutine)实现。Go 语言的每一个并发执行的任务称为 goroutine,也包括执行 main() 函数的任务。Go 启动一个 goroutine 非常简单,在任何函数或方法调用前面加上 go 关键字,该函数或方法的调用即异步执行。原创 2023-05-26 20:00:00 · 1016 阅读 · 0 评论 -
Golang_12: Go语言 文件IO:文件读写、文件操作
Go 语言文件操作相关的包:os、io/ioutil、path/filepath。打开一个文件的通用函数: os.OpenFile()。一般情况下不直接使用 os.OpenFile() 函数打开文件,而是使用另外两个更加简洁的函数 os.Open() 和 os.Create()。原创 2023-05-26 18:00:00 · 954 阅读 · 0 评论 -
Golang_11: Go语言 包管理工具、工作空间组织、Go环境变量、GOPROXY
Go 的项目工程,使用 包(package) 和 文件夹 来组织代码源文件,每个源文件中都包含一个包名,可以用多级文件夹存放不同功能的源码文件。Go 1.11 版本之前,一般使用 GOPATH 模式组织工作空间。Go 1.11 版本引入了 Go Modules 模式的项目模块管理方式,Go 1.14 版本开始已强烈推荐使用 Go Modules。GOPROXY 可以指定多个代理 URL(使用逗号 , 分隔),也可以包含一个表示直连(不走代理)的关键字 direct。原创 2023-05-26 17:30:00 · 1452 阅读 · 0 评论 -
Golang_10: Go语言 泛型编程
Go 1.18 开始支持泛型编程。泛型(generic)允许程序员在强类型编程语言中编写代码时使用一些以后才指定的类型,在实例化或实际调用时作为参数指明这些类型。原创 2023-05-26 15:30:00 · 638 阅读 · 0 评论 -
Golang_09: Go语言 错误处理(error)、链式/树状error、panic与recover
Go 调用可能发生异常的函数时,通过多返回一个附加结果作为错误值,习惯上将错误值作为最后一个返回结果。如果返回的错误值为错误类型的零值(如 nil),表示没有发生错误。原创 2023-05-25 22:26:14 · 1071 阅读 · 0 评论 -
Golang_08: Go语言 接口 与 面向对象
接口类型 是对其他类型行为的概括和抽象,一个接口类型约定了有零个或多个方法。Go 语言的接口不需要显式实现,一个类型只要拥有一个接口约定的所有方法,那么就表示该类型实现了这个接口。对于一个具体的类型,也不需要声明它实现了哪些接口。接口类型属于引用类型,其零值为空指针 nil。原创 2023-05-25 22:15:21 · 273 阅读 · 0 评论 -
Golang_07: Go语言 函数 与 方法
函数在 Go 语言中也是一种类型,也可以和其他普通类型一样声明变量。函数变量也支持赋值操作、作为参数传递给函数 和 作为函数返回值。函数类型 属于引用类型,其零值为空指针 nil。函数变量的比较运算仅支持与其零值 nil 做 == 和 != 操作。声明一个函数后,其 函数名 就是一个此函数类型的一个 常量值,因此也不能对函数名用 & 操作符取地址。函数类型 的字面表示由 func关键字、参数类型列表、返回值类型列表 构成。实际上就是普通函数的声明格式,去掉函数名称,参数名称,以及函数体部分。格式:f原创 2023-05-25 21:59:48 · 85 阅读 · 0 评论 -
Golang_06: Go语言 程序结构:分支结构、循环结构、选择结构、select
Go 程序基本的三个程序结构:分支结构(if-else)、循环结构(for)、选择结构(switch)。与 switch 类似的,用于通道(chan)通信控制的 select。不推荐使用的 goto 语句。原创 2023-05-25 21:50:08 · 104 阅读 · 0 评论 -
Golang_05: Go语言 缓冲区(Buffer) 与 读取器(Reader)
对于字符串 复制赋值、切片子串 的操作,底层共用了同一个字符串字节数组,不会真正产生新的字符串,也就不会分配新的内存区域去存储字符串。但对于字符串的拼接,则会为拼接后的新字符串分配新的底层字节数组去存储。如果频繁拼接字符串,效率就显得的低下,因此就需要使用到缓冲区(Buffer)来做优化。bytes.Buffer 是具有 读取 和 写入 方法的可变大小的字节缓冲区。bytes.Buffer 是一个结构体类型,它的零值是一个可以直接使用的空缓冲区。原创 2023-05-25 21:37:10 · 1718 阅读 · 0 评论 -
Golang_04: Go语言 标准输入输出 与 格式化输入输出
格式化函数均以 f 结尾。还有其他格式化函数,log.Printf() 包含时间前缀打印,fmt.Errorf() 格式化字符串返回一个 error 错误对象。Printf 函数的第一个参数是格式化指示字符串,可以包含多个转义字符的占位符,使用 % 加操作格式占位,称为 verb。原创 2023-05-25 21:33:40 · 1855 阅读 · 0 评论 -
Golang_03: Go语言 数学运算:算术运算、赋值运算、比较运算、逻辑运算、位运算
Go语言支持的数学运算:算术运算、赋值运算、比较运行、逻辑运行、位运算。Go 程序中参与数学运算的数值类型必须完全相同。如果是变量,需要显式转换;如果是字面量,会自动隐式转换。原创 2023-05-25 21:30:30 · 282 阅读 · 0 评论 -
Golang_02: Go语言 数据类型:基础类型 与 复合类型
Go 的数据类型可分为 基础类型、复合类型、引用类型、接口类型 等。其中 基础类型、复合类型 是常用的 数据结构 类型,可细分为:Go 使用 关键字声明 变量,格式:其中 类型 和 表达式赋值 可以省略一个,但不能都省略(需要能够推导出变量的类型)。如果省略初始化赋值表达式,则变量的初始值为对应类型的 零值(默认值),Go 不存在未初始的变量。各类型的 零值:示例:可以用 声明多少变量:可同时声明多个不同类型的变量。短变量声明,在函数中,可以使用 短变量声明 来声明和初始化局部变量。原创 2023-05-25 21:20:28 · 295 阅读 · 0 评论 -
Golang_01: Go语言 简介、基础语法、构建运行
Go 语言(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go 的运行环境几乎包括所有操作系统平台,包括但不限于 Windows、MacOS、Linux、Android、iOS 等等。原创 2023-05-25 21:20:23 · 141 阅读 · 0 评论