mingo

package module
v0.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2024 License: MIT Imports: 12 Imported by: 0

README

go 服务工具

功能

  • Router 服务分发器
  • Bus 事件总线
  • Helper 数据处理助手
  • Delay 基于 redis 的延迟队列
  • RedisMq 基于 redis stream 的事件总线

安装

go get gitee.com/liangguoming/mingo

使用

参考 wiki页面

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Clamp

func Clamp[T Number](value T, min T, max T) T

限制数字在指定范围

func Filter

func Filter[T any](list []T, match func(item *T) bool) []T

筛选 slice

func Find

func Find[T any](list []T, match func(item *T) bool) (*T, int)

查找 slice 某项 @return 1:Item pointer,nil will be not find @return 2:item index,-1 will be not find

func First

func First[T any](list []T) *T

获取 slice 第一项

func Floor

func Floor(value float64, len int) float64

向下取整到某位小数点

func Includes

func Includes[T any](list []T, match func(item *T) bool) bool

判断 slice 是否含有某项

func Intersection added in v0.2.0

func Intersection[T any](listA []T, listB []T, compare func(a *T, b *T) bool) []T

获取 slice 交集

func Join added in v0.3.1

func Join(list []string, separator string) string

func Last

func Last[T any](list []T) *T

获取 slice 最后一项

func Listify

func Listify[T, V any](obj map[string]T, toValue func(key string, value *T) V) []V

map 转 slice

func Map

func Map[T any, V any](list []T, getValue func(item *T) V) []V

遍历 slice 并重新组织结构

func Max

func Max[T any, V Number](list []T, getValue func(item *T) V) *T

获取列表中最大的一项,支持 struct slice

func Md5 added in v0.9.2

func Md5(buff []byte) string

func Merge added in v0.5.2

func Merge[T any](a1 []T, a2 []T) []T

func Min

func Min[T any, V Number](list []T, getValue func(item *T) V) *T

获取列表中最小的一项,支持 struct slice

func Objectify

func Objectify[T any, V any](list []T, getKey func(item *T) string, getValue func(item *T) V) map[string]V

slice 转 map

func Ptr added in v0.6.1

func Ptr[T any](val T) *T

get address of value

func QueryString added in v0.3.1

func QueryString(params map[string]string) string

object 排序后,转查询参数,不带?返回

func Random

func Random(min int, max int) int

随机数

func RandomString

func RandomString(length int) string

随机字符串,不含特殊字符

func Reduce

func Reduce[T any, V any](list []T, inter func(prev *V, cur *T, index int) *V, initValue *V) *V

遍历 list 并折合成 initValue 类型

func Remove added in v0.5.0

func Remove[T any](list []T, index int) []T

移除数组下标为 index 的项

func Round

func Round(value float64, len int) float64

4舍5入到某位小数点

func SetInterval added in v0.3.0

func SetInterval(duration time.Duration, cb func())

循环定时,暂时启动后不能停止

func Sha1 added in v0.9.2

func Sha1(buff []byte) string

func Sort

func Sort[T any](list []T, compare func(a *T, b *T) bool)

排序,直接修改原数组 switch pos when compare return true

func Sum

func Sum[T any, V Number](list []T, getValue func(item *T) V) V

sum slice 内某项数据

func Trunc

func Trunc[T Number](value T, block T) T

获取 value 内 block 的最大倍数

Types

type Bus

type Bus struct {
	// contains filtered or unexported fields
}

func NewBus

func NewBus() Bus

func (*Bus) Emit

func (t *Bus) Emit(ctx context.Context, event string, data any)

func (*Bus) On

func (t *Bus) On(event string, cb BusCallBack)

type BusCallBack

type BusCallBack func(ctx context.Context, ev any)

type Logger added in v0.4.0

type Logger struct {
	// contains filtered or unexported fields
}

func NewLogger added in v0.4.0

func NewLogger(node string, addr string, lv int) *Logger

node:应用节点 addr:服务端地址 lv:4-debug 同时console 输出,3-info,2-warn,1-只打印 error

func (*Logger) Debug added in v0.4.0

func (t *Logger) Debug(contents ...any)

func (*Logger) Error added in v0.4.0

func (t *Logger) Error(contents ...any)

func (*Logger) Info added in v0.4.0

func (t *Logger) Info(contents ...any)

func (*Logger) NewSession added in v0.4.0

func (t *Logger) NewSession(seq string) *LoggerSession

func (*Logger) Warn added in v0.4.0

func (t *Logger) Warn(contents ...any)

func (*Logger) Write added in v0.4.0

func (t *Logger) Write(lv string, seq string, contents ...any)

type LoggerSession added in v0.4.0

type LoggerSession struct {
	// contains filtered or unexported fields
}

func (*LoggerSession) Debug added in v0.4.0

func (t *LoggerSession) Debug(contents ...any)

func (*LoggerSession) Error added in v0.4.0

func (t *LoggerSession) Error(contents ...any)

func (*LoggerSession) Info added in v0.4.0

func (t *LoggerSession) Info(contents ...any)

func (*LoggerSession) Warn added in v0.4.0

func (t *LoggerSession) Warn(contents ...any)

type Number

type Number interface {
	uint8 | int8 | uint16 | int16 | uint32 | int32 | uint64 | int64 | uint | int | float32 | float64
}

type StringSet added in v0.5.0

type StringSet struct {
	List []string
}

非线程安全

func NewStringSet added in v0.5.0

func NewStringSet(args ...string) *StringSet

func (*StringSet) Add added in v0.5.0

func (t *StringSet) Add(value string)

func (*StringSet) Delete added in v0.5.0

func (t *StringSet) Delete(value string)

func (*StringSet) ForEach added in v0.5.0

func (t *StringSet) ForEach(f func(item string))

func (*StringSet) Has added in v0.5.0

func (t *StringSet) Has(value string) bool

func (*StringSet) Len added in v0.5.0

func (t *StringSet) Len() int

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL