随笔分类 - Golang
摘要:Go语言内置的 log 包实现了简单的日志服务,本文介绍了 log 包的基本使用。 #Logger 类型 log 包定义了Logger类型,该类型提供了一些格式化输出的方法,具体定义如下: // Logger 类型表示一个活动状态的记录日志的对象,生成一行行的输出写入 io.Writer 接口,每一
阅读全文
摘要:本文介绍 Go 语言的单元测试。 单元测试基础 Go 语言依赖go test命令进行函数测试,包目录下所有以_test.go为后缀的文件都是go test测试的一部分,不会被go build编译到最终的可执行文件。在*_test.go文件中,可以编写以下三种类型的函数: 类型 格式 作用 测试函数
阅读全文
摘要:平时下载文件或者视频的命名很多带有长长的网址前缀,比如一些编程的教学视频,如果对其进行重命名观感上舒服多了;还有一些的压缩包,解压之后,文件夹中包含广告的网页文件,我们也希望对其进行删除。 批量重命名文件 package main import ( "fmt" "io/ioutil" "os" "s
阅读全文
摘要:encoding/json包实现了json对象的编码和解码,本文对常用的数据结构与json格式之间相互转换进行介绍。 基本使用 encoding/json包中最常用的是Marshal()和Unmarshal()函数: // 返回 v 的 json 编码,会递归对 v 进行处理。 func Marsh
阅读全文
摘要:context.Context是一个非常抽象的概念,中文翻译为 ”上下文“,可看做为goroutine的上下文。Context是线程安全的,所以可以在多个goroutine之间传递上下文信息,包括信号、超时时间、K-V键值对等,同时它也可以用作并发控制。 Context 接口 type Contex
阅读全文
摘要:os 包提供了平台无关的操作系统功能接口,主要是文件相关的I/O,本文会重点对文件操作进行介绍。 文件 I/O 在 Go 中,文件描述符封装在os.File结构中。os.File代表一个打开的文件对象,可以使用该对象进行文件读写操作。 type File struct { *file // os s
阅读全文
摘要:bufio 包实现了缓存I/O。它提供了bufio.Reader和bufio.Writer类型,其内部分别包装了io.Reader和io.Writer对象,同时分别实现了io.Reader和io.Writer接口。同时,该包为文本I/O提供了一些便利操作。 bufio.Reader 类型 bufio
阅读全文
摘要:io 包提供了对I/O原语的基本接口,其基本任务是包装这些原语已有的实现(如 os 包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加一些相关的原语的操作。 io 包常用接口 io.Reader 和 io.Writer 接口 io.Reader 接口 // io.Reader
阅读全文
摘要:Go 语言安装 下载 官网下载地址:https://golang.org/dl/ 国内下载:https://studygolang.com/dl Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。 Windows 下载可执行文件版,按照提示一步步安装即可,默认
阅读全文
摘要:本文转载自 https://zhuanlan.zhihu.com/p/260661233 Go 官方提供的文件操作标准库分散在os、ioutil等多个包中,里面有非常多的方法涵盖了文件操作的所有场景,不过因为我平时开发过程中需要直接操作文件的场景其实并不多,在加上 Go 标准库的文档太难搜索,每次遇
阅读全文
摘要:path 实现了对斜杠分隔的路径的实用操作函数,path/filePath包实现了兼容各操作系统的文件路径的实用操作函数。path 包中提供的函数,path/filePath包都有提供,功能类似,但实现不同。一般应该总是使用path/filePath包,而不是 path 包,但是本文还是对 path
阅读全文
摘要:Go 语言的 time 包提供了时间的显示和测量用的函数,日历的计算采用的是公历。 time.Location 类型 time.Location表示与地区相关的时区,一个time.Location可能表示多个时区。 // time.Location 代表一个(关联到某个时间点的)地点,以及该地点所在
阅读全文
摘要:math 包提供了基本的数学常数和数学函数,math/rand包实现了伪随机数生成器, 本文对 math 和math/rand包的常用操作进行介绍。 math 包 常用常数 ☕️ 数学常数 const ( E = 2.71828182845904523536028747135266249775724
阅读全文
摘要:container/heap包提供了对任意类型(实现了heap.Interface接口)的堆操作,这里的堆使用的数据结构是最小二叉树,即根节点比左边子树和右边子树的所有值都小。 heap.Interface 接口 // heap.Interface type Interface interface
阅读全文
摘要:sort 包实现了四种基本排序算法:插入排序(希尔排序)、归并排序、堆排序和快速排序,这四种排序方法是不公开的,它们只被用于 sort 包内部使用。在实际使用中,对数据集合排序时不必考虑应当选择哪一种排序方法,sort 包会根据实际数据自动选择高效的排序算法。 sort.Interface 接口 实
阅读全文
摘要:Go 语言的 strconv 包实现了字符串与其它类型的互相转换,本文介绍 strconv 包的常用操作。 Parse 类型 字符串解析为布尔值 ParseBool // 返回字符串表示的 bool 值,接受 1、0、t、f、T、F、true、false、True、False、TRUE、FALSE
阅读全文
摘要:Go 语言的 strings 包实现了字符串的常用操作,本文介绍 strings 包的常用使用。 常用函数 字符串比较 Compare/EqualFold // 按照字典序比较两个字符串大小,a = b 返回 0,a < b 返回 -1,a > b 返回 1 // 不推荐使用这个函数,直接使用 =、
阅读全文
摘要:Go 语言的 fmt 包实现了类似 C 语言 printf 和 scanf 的格式化 I/O,主要分为向外输出内容和获取输入内容两大部分。 Printing Print 类型 Print 类型函数会将内容格式化,并写入标准输出。主要有以下三个函数: // 采用默认格式将参数格式化,并写入标准输出。如
阅读全文

浙公网安备 33010602011771号