github.com/Anderson-Lu/gobox@v0.0.0-20191127065433-3e6c4c2da420/readme.md (about) 1 #### 字符串操作 2 3 ```shell 4 go get github.com/Anderson-Lu/gobox/string 5 ``` 6 7 |所属包|方法|功能| 8 |-----|-----|-----| 9 |`string`|`FindUrl(raw string) []string`|从指定字符串中正则匹配出来URL| 10 11 #### 数值操作 12 13 ```shell 14 go get -u github.com/Anderson-Lu/gobox/number 15 ``` 16 17 |所属包|方法|功能| 18 |-----|-----|-----| 19 |`number`|`RandomInt(max int) int`|返回0~max-1的随机数| 20 |`number`|`Min(a1, a2 float64) float64`|返回a1和a2的最小值| 21 |`number`|`MinN(aN ...int) int`|返回a1到aN的最小值| 22 |`number`|`MinFloat64N(aN ...float64) float64`|返回a1到aN的最小值| 23 |`number`|`FloorOrCeil(n int, raw float64, isUp bool) float64 `|指定精度位数进行向上或者向取整| 24 |`number`|`CalcDigist(n float64) int`|返回精度| 25 |`number`|`Round(f float64, n int) float64`|指定精度位数进行向下取整| 26 |`number`|`CalcAverage(data Avg) float64`|[计算平均数](#方差和平均数)| 27 |`number`|`CalcVariance(data Variance) float64`|[计算方差](#方差和平均数)| 28 |`number`|`CalcNormsdist(a float64) float64`|计算正态分布的标准密度函数| 29 30 #### 类型转换 31 32 ```shell 33 go get github.com/Anderson-Lu/gobox/convert 34 ``` 35 36 |所属包|方法|功能| 37 |-----|-----|-----| 38 |`convert`|`ConvertBs2Interface(bs []byte) (map[string]interface{}, error)`|将字节数组转化为对象| 39 40 #### 定时任务 41 42 ```shell 43 go get github.com/Anderson-Lu/gobox/cron 44 ``` 45 46 |所属包|方法|功能| 47 |-----|-----|-----| 48 |`cron`|`AddJob(job func(), errHandler func(error), taskName string, cronTab string)`|添加cron异步定时任务| 49 50 #### 并发任务 51 52 ```shell 53 go get github.com/Anderson-Lu/gobox/concurrent 54 ``` 55 56 |所属包|方法|功能| 57 |-----|-----|-----| 58 |`concurrent`|`AddTask(task func(...interface{}), params ...interface{})`|添加并发任务| 59 60 #### 重试任务 61 62 ```shell 63 go get github.com/Anderson-Lu/gobox/retry 64 ``` 65 66 |所属包|方法|功能| 67 |-----|-----|-----| 68 |`retry`|`Retry(retryTimes int, errHandler func(error), job func() error) error`|指定重试运行指定任务| 69 70 #### 数据库操作 71 72 ```shell 73 go get github.com/Anderson-Lu/gobox/database 74 ``` 75 76 |所属包|方法|功能| 77 |-----|-----|-----| 78 |`mongo`|`NewMongoClient(connStr string) (*mgo.Session,error)`|生成mongo连接客户端| 79 |`mysql`|`NewMysqlClient(host, dbname, user, pwd string) (gorm.DB*, error)`|生成mysql连接客户端| 80 |`redis`|`NewRedisClient(addr, pwd string) *RedisClient `|生成redis连接客户端| 81 82 #### 中间件操作 83 84 ```shell 85 go get github.com/Anderson-Lu/gobox/middleware 86 ``` 87 88 |所属包|方法|功能| 89 |-----|-----|-----| 90 |`kafka`|`NewKafkaProducer(address []string) (*KafkaProducer, error)`|生成kafka连接客户端| 91 92 #### 日志操作 93 94 ```shell 95 go get github.com/Anderson-Lu/gobox/log 96 ``` 97 98 |所属包|方法|功能| 99 |-----|-----|-----| 100 |`log`|`NewLogger() *logging.Logger`|返回日志操作对象| 101 102 #### 加密操作 103 104 ```shell 105 go get github.com/Anderson-Lu/gobox/crypto 106 ``` 107 108 |所属包|方法|功能| 109 |-----|-----|-----| 110 |`crypto`|`HmacSha256(data string, key string) string`|HMACSHA256加密算法| 111 |`crypto`|`Sha256(data string) string`|SHA256加密算法| 112 113 #### 详细说明 114 115 ##### 方差和平均数 116 117 注意,对于计算方差和计算平均数,参数需要实现特定的接口: 118 119 ```golang 120 type Variance interface { 121 Len() int 122 Get(i int) float64 123 } 124 type Avg Variance 125 ```