Go扩展包(十二):cron

1.介绍

在Linux中,通过crontab命令使任务在约定的时间执行已经计划好的工作,而Go由于语言的特性,不适合直接使用crontab来管理计划任务,cron (目前 Star8.3k)是一个用Go实现的定时任务库,支持秒级定时任务,可以满足绝大多数工作场景需求。

Go扩展包(十一):colly

1.介绍

Colly是Golang世界中最知名的Web爬虫框架,它提供简洁的 API,拥有强劲的性能、可以自动处理 cookie&session、提供灵活的扩展机制,同时支持分布式抓取和多种存储后端(如内存、Redis、MongoDB等)。

Go扩展包(十):es

1.介绍

Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎。

Go标准包(十五):testing

1. 介绍

testing 包为Go 语言提供自动化测试的支持。通过 go test 命令来执行单元测试文件,单元测试文件命名格式为: xxx_test.go,在单元测试文件中,根据测试类型不同可以分为:功能测试函数、基准测试函数,区别如下:

Go扩展包(九):go-redis

1. 介绍

redis官网推荐使用redigo(https://github.com/gomodule/redigo),截止到今天Github Start是8.2k 但go-redis(https://github.com/go-redis/redis)使用的人更多, 并且go-redis封装得更好。截止到今天Github Start 是12.1k。

Go扩展包(八):jwt-go

1. 介绍

JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。

Go扩展包(七):excel

1. 介绍

1. 1 什么是Excelize

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本。

Go标准包(十四):math

1. 介绍

Go标准包math,提供了基本的数学常数和数学函数。

2. 常量

2.1 整数取值

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const (
    MaxInt8   = 1<<7 - 1 // int8最大值
    MinInt8   = -1 << 7 // int8最小值
    MaxInt16  = 1<<15 - 1
    MinInt16  = -1 << 15
    MaxInt32  = 1<<31 - 1
    MinInt32  = -1 << 31
    MaxInt64  = 1<<63 - 1
    MinInt64  = -1 << 63
    MaxUint8  = 1<<8 - 1
    MaxUint16 = 1<<16 - 1
    MaxUint32 = 1<<32 - 1
    MaxUint64 = 1<<64 - 1
)

2.2 浮点数取值

1
2
3
4
5
6
const (
    MaxFloat32             = 3.40282346638528859811704183484516925440e+38
    SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45
    MaxFloat64             = 1.797693134862315708145274237317043567981e+308
    SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324
)

3. 函数

3.1 取整

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 取整
func TestRounding(t *testing.T) {
	// 向上取整
	fmt.Println("50.345,向上取整 -> ", math.Ceil(50.345))
	fmt.Println("50.745,向上取整 -> ", math.Ceil(50.745))
	// 向下取整
	fmt.Println("50.345,向上取整 -> ", math.Floor(50.345))
	fmt.Println("50.745,向上取整 -> ", math.Floor(50.745))
	// 四舍五入
	fmt.Println("50.345,四舍五入 -> ", math.Floor(50.345+0.5))
	fmt.Println("50.745,四舍五入 -> ", math.Floor(50.745+0.5))
}
/** 输出
=== RUN   TestRounding
50.345,向上取整 ->  51
50.745,向上取整 ->  51
50.345,向上取整 ->  50
50.745,向上取整 ->  50
50.345,四舍五入 ->  50
50.745,四舍五入 ->  51
--- PASS: TestRounding (0.00s)
PASS
*/

@@注意: golang没有四舍五入函数,常见处理先+0.5,然后向下取整!