Go扩展包(四):crypto-aes

1.介绍

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),又称Rijndael加密法(荷兰语发音:[ˈrɛindaːl],音似英文的“Rhine doll”),是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。现在,高级加密标准已然成为对称密钥加密中最流行的算法之一。

Go标准包(十二):os

1.介绍

os包中提供了操作系统函数的接口,是一个比较重要的包。它的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。下面分模块归纳一些常用函数。

Go标准包(十一):unicode

1.介绍

unicode包提供了诸多处理rune字符相关功能的函数(比如区分字母和数字,或者是字母的大写和小写转换等)

2.判断函数

2.1 是否为空格(IsSpace)

1
2
3
4
5
6
7
8
func TestJudge(t *testing.T) {
	rune1 := ' '
	rune2 := 'h'
	fmt.Printf("[%c] 是空格? %t\n",rune1,unicode.IsSpace(rune1))
  // 输出 [ ] 是空格? true
	fmt.Printf("[%c] 是空格? %t\n",rune2,unicode.IsSpace(rune2))
  // 输出 [h] 是空格? false
}

2.2 是否为十进制数(IsDigit)

1
2
3
4
5
6
d1 := '1'
d2 := 'w'
fmt.Printf("[%c] 是十进制数? %t\n",d1,unicode.IsDigit(d1))
// 输出: [1] 是十进制数? true
fmt.Printf("[%c] 是十进制数? %t\n",d2,unicode.IsDigit(d2))
// 输出: [w] 是十进制数? false

2.3 是否为数字(IsNumber)

1
2
3
4
5
6
d1 := '1'
d2 := 'w'
fmt.Printf("[%c] 是数字? %t\n",d1,unicode.IsNumber(d1))
// 输出: [1] 是数字? true
fmt.Printf("[%c] 是数字? %t\n",d2,unicode.IsNumber(d2))
// 输出: [w] 是数字? false

2.4 是否为字母字符(IsLetter)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// 是否为字母字符
str1 := '刘'
str2 := 'l'
str3 := 'W'
str4 := '!'
fmt.Printf("[%c] 是字母? %t\n",str1,unicode.IsLetter(str1))
// [刘] 是字母? true
fmt.Printf("[%c] 是字母? %t\n",str2,unicode.IsLetter(str2))
// [l] 是字母? true
fmt.Printf("[%c] 是字母? %t\n",str3,unicode.IsLetter(str3))
// [W] 是字母? true
fmt.Printf("[%c] 是字母? %t\n",str4,unicode.IsLetter(str4))
// [!] 是字母? false

@注意: 汉字也是一个字母字符

Go标准包(十):sort

1.介绍

sort包实现了四种基本排序算法:插入排序、归并排序、堆排序、快速排序。 但是这四种排序方法是不公开的,它们只能在 sort 包内部使用。sort 包会根据实际数据自动选择高效的排序算法,所以在对数据集合排序时不必考虑应当选择哪一种排序方法,只要实现了 sort.Interface 定义的三个方法,就可以顺利对数据集合进行排序:

Go扩展包(一):viper

1.介绍

Viper是适用于Go应用程序(包括Twelve-Factor App)的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。目前Star 15.8k,它支持以下特性:

  • 设置默认值
  • 从JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件读取配置信息
  • 实时监控和重新读取配置文件(可选)
  • 从环境变量中读取
  • 从远程配置系统(etcd或Consul)读取并监控配置变化
  • 从命令行参数读取配置
  • 从buffer读取配置
  • 显式配置值

2.安装

1
go get github.com/spf13/viper

3. 读取yaml

viper可以解析JSON、TOML、YAML、HCL、envfile、properties多种格式的配置文件,这里只演示yaml格式的解析,其他格式与此类似。

Go标准包(九):flag

1.介绍

在 Go中,如果要接收命令行参数,需要使用 flag包进行解析。不同的参数类型可以通过不同的方法接收。

2.参数接受

2.1 接受方式

使用flag接收参数,可以由以下三种方式接受:

Go标准包(八):sync

1.介绍

sync包提供了互斥锁。除了Once和WaitGroup类型,其余多数适用于低水平的程序,多数情况下,高水平的同步使用channel通信性能会更优一些。