utils

package
v1.6.6 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2025 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Array struct {
	Diff         func(array1, array2 []any) (slice []any)
	Intersect    func(array1, array2 []any) (slice []any)
	Filter       func(array []string) (slice []string)
	Remove       func(array []string, args ...string) (slice []string)
	Unique       func(array []any) (slice []any)
	Empty        func(array []any) (slice []any)
	Reverse      func(array []any) (slice []any)
	MapWithField func(array []map[string]any, field any) (slice []any)
	Paging       func(rows []any, page, limit int) (code int, count int, data []any)
}
View Source
var In struct {
	Array func(value any, array []any) (ok bool)
}
View Source
var Map struct {
	WithField    func(data map[string]any, field []string) (result map[string]any)
	WithoutField func(data map[string]any, field []string) (result map[string]any)
	ToURL        func(data map[string]any) (result string)
	Keys         func(data map[string]any) (result []string)
	Values       func(data map[string]any) (result []any)
	Trim         func(data map[string]any) (result map[string]any)
}
View Source
var MimeMap = map[string]string{
	"js":   "application/javascript",
	"json": "application/json",
	"xml":  "application/xml",
	"css":  "text/css",
	"html": "text/html",
	"txt":  "text/plain",
	"gif":  "image/gif",
	"png":  "image/png",
	"jpg":  "image/jpeg",
	"jpeg": "image/jpeg",
	"svg":  "image/svg+xml",
	"ico":  "image/x-icon",
	"pdf":  "application/pdf",
	"zip":  "application/zip",
	"rar":  "application/x-rar-compressed",
	"gz":   "application/x-gzip",
	"tar":  "application/x-tar",
	"7z":   "application/x-7z-compressed",
	"mp3":  "audio/mpeg",
	"mp4":  "video/mp4",
	"avi":  "video/x-msvideo",
	"doc":  "application/msword",
	"docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
	"xls":  "application/vnd.ms-excel",
	"xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
	"ppt":  "application/vnd.ms-powerpoint",
	"pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
	"csv":  "text/csv",
	"md":   "text/markdown",
}
View Source
var Url = &UrlClass{}
View Source
var Validate = func(model any) *validator {
	return &validator{
		model: model,
		rule:  ValidateRules,
	}
}

Validate - 验证器入口

Functions

func ArrayDiff

func ArrayDiff[T any](array1, array2 []T) (slice []T)

ArrayDiff - 数组差集

func ArrayEmpty

func ArrayEmpty[T any](array []T) (slice []T)

ArrayEmpty - 数组去空

func ArrayFilter

func ArrayFilter(array []string) (slice []string)

ArrayFilter - 数组过滤

func ArrayIntersect added in v1.5.1

func ArrayIntersect[T any](array1, array2 []T) (slice []T)

ArrayIntersect - 交集

func ArrayMapWithField

func ArrayMapWithField(array []map[string]any, field any) (slice []any)

ArrayMapWithField - 数组Map保留指定字段

func ArrayPaging added in v1.6.2

func ArrayPaging[T any](rows []T, page, limit int) (code int, count int, data []T)

ArrayPaging - 分页处理

func ArrayRemove

func ArrayRemove(array []string, args ...string) []string

ArrayRemove - 数组删除

func ArrayReverse

func ArrayReverse[T any](array []T) (slice []T)

ArrayReverse - 数组反转

func ArrayUnique

func ArrayUnique[T any](array []T) (slice []T)

ArrayUnique - 数组去重

func Calc

func Calc(input any) (output float64)

Calc - 计算器

func Caller

func Caller() *caller

Caller 获取代码调用者

func CustomProcessApi

func CustomProcessApi(url string, api string) (result string)

func Default

func Default[T any](param T, value ...T) (result T)

Default - 设置默认值

func EnvToml

func EnvToml(args ...string) (result any)

EnvToml - 读取配置文件

func ForMap

func ForMap[T any](slice []T, fun func(item T) (result T)) (newSlice []T)

ForMap - 遍历数组,返回新数组

func GetCaller

func GetCaller() (funcName string, fileName string, line int)

func InArray

func InArray[T any](value T, array []T) (ok bool)

InArray - 判断某个值是否在数组中

func InMapKey

func InMapKey(key string, array map[string]any) bool

InMapKey 在 map key 中

func InMapValue

func InMapValue(value any, array map[string]string) bool

InMapValue 在 map value 中

func MapKeys

func MapKeys[T map[string]any](data T) (result []string)

MapKeys - 获取 map 的所有 key

func MapMerge

func MapMerge(map1 map[any]any, map2 map[any]any) map[any]any

MapMerge map合并

func MapMergeString

func MapMergeString(map1 map[string]string, map2 map[string]string) map[string]string

MapMergeString map合并

func MapToURL

func MapToURL(params map[string]any) (result string)

MapToURL - 无序 map 转 有序 URL

func MapTrim added in v1.4.4

func MapTrim[T map[string]any](data T) (result T)

MapTrim - 去除 map 中的空值

func MapValues

func MapValues[T map[string]any](data T) (result []any)

MapValues - 获取 map 的所有 value

func MapWithField

func MapWithField[T map[string]any](data T, field []string) (result T)

MapWithField - 从map中提取指定字段

func MapWithoutField

func MapWithoutField[T map[string]any](data T, field []string) (result T)

MapWithoutField - 从map中排除指定字段

func Redirect

func Redirect(url any) (result string)

Redirect - 获取重定向地址

func Replace

func Replace(value any, params map[string]any) (result string)

Replace - 字符串替换

func Ternary

func Ternary[T any](IF bool, TRUE T, FALSE T) T

Ternary - 三元运算符

func ValidateRules

func ValidateRules(name string, value any, rule string, message map[string]string) (err error)

ValidateRules - 验证规则 *

  • @rule - 内置规则 - 如下:
  • required:必填
  • min:最小值
  • max:最大值
  • email:是否为邮箱
  • number:是否为数字
  • float:是否为浮点数
  • bool:是否为布尔值
  • slice:是否为切片 - (数组)
  • jsonStr:是否为 JSON 字符串
  • accepted:验证某个字段是否为为 yes, on, 或是 1
  • date:是否为日期
  • alpha:只能包含字母
  • alphaNum:只能包含字母和数字
  • alphaDash:只能包含字母、数字和下划线_及破折号-
  • chs:只能包含汉字
  • chsAlpha:只能包含汉字、字母
  • chsAlphaNum:只能包含汉字、字母和数字
  • chsDash:只能是汉字、字母、数字和下划线_及破折号-
  • cntrl:是否为控制字符 - (换行、缩进、空格)
  • graph:是否为可见字符 - (除空格外的所有可打印字符)
  • lower:是否为小写字母
  • upper:是否为大写字母
  • space:是否为空白字符 - (空格、制表符、换页符等)
  • xdigit:是否为十六进制字符 - (0-9、a-f、A-F)
  • activeUrl:是否为有效的域名或者IP
  • url:是否为有效的URL地址
  • ip:是否为IP地址
  • mobile:是否为手机号
  • idCard:是否为身份证号
  • MacAddr:是否为MAC地址
  • zip:是否为邮政编码 *

Types

type AESRequest

type AESRequest struct {
	// 16位密钥
	Key string
	// 16位向量
	Iv string
}

AESRequest - 请求输入

func AES

func AES(key, iv any) *AESRequest

AES - 对称加密

func (*AESRequest) Decrypt

func (this *AESRequest) Decrypt(text any) (result *AESResponse)

Decrypt 解密

func (*AESRequest) Encrypt

func (this *AESRequest) Encrypt(text any) (result *AESResponse)

Encrypt 加密

type AESResponse

type AESResponse struct {
	// 加密后的字节
	Byte []byte
	// 加密后的字符串
	Text string
	// 错误信息
	Error error
}

AESResponse - 响应输出

type AsciiClass added in v1.5.0

type AsciiClass struct{}
var Ascii *AsciiClass

func (*AsciiClass) ToString added in v1.5.0

func (this *AsciiClass) ToString(params map[string]any, omitempty bool) (result string)

ToString - 根据ASCII码排序

type AsyncClass added in v1.5.0

type AsyncClass[T any] struct {
	// 读写锁
	Mutex sync.RWMutex
	// 等待组
	Wait sync.WaitGroup
	// 数据
	Data T
}

func Async

func Async[T any]() *AsyncClass[T]

Async - 异步数据

func (*AsyncClass[T]) Get added in v1.5.0

func (this *AsyncClass[T]) Get(key string) any

Get - 获取数据

func (*AsyncClass[T]) Has added in v1.5.0

func (this *AsyncClass[T]) Has(key string) (ok bool)

Has - 判断是否存在

func (*AsyncClass[T]) Result added in v1.5.0

func (this *AsyncClass[T]) Result() T

Result - 获取所有数据

func (*AsyncClass[T]) Set added in v1.5.0

func (this *AsyncClass[T]) Set(key string, val any)

Set - 设置数据

type CasesClass added in v1.5.4

type CasesClass struct {
	// 参数
	Params CasesParams
}
var Cases *CasesClass

func (*CasesClass) Camel added in v1.5.4

func (this *CasesClass) Camel(name any) string

Camel 骆驼命名法

func (*CasesClass) IsUpper added in v1.5.4

func (this *CasesClass) IsUpper(yes bool) *CasesClass

IsUpper 是否大写

func (*CasesClass) Kebab added in v1.5.4

func (this *CasesClass) Kebab(name any) string

Kebab 烤肉串式命名法

func (*CasesClass) Snake added in v1.5.4

func (this *CasesClass) Snake(name any) string

Snake 蛇式命名法

func (*CasesClass) Space added in v1.5.4

func (this *CasesClass) Space(name any) string

Space 空格命名法

type CasesParams added in v1.5.4

type CasesParams struct {
	// 是否大写
	IsUpper bool
}

type CurlClass added in v1.5.0

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

CurlClass - Curl 结构体

func Curl

func Curl(request ...CurlRequest) *CurlClass

Curl - 发起请求 - 入口

func (*CurlClass) Body added in v1.5.0

func (this *CurlClass) Body(body any) *CurlClass

Body - 定义请求体

func (*CurlClass) Client added in v1.5.0

func (this *CurlClass) Client(client *http.Client) *CurlClass

Client - 定义请求客户端

func (*CurlClass) Data added in v1.5.0

func (this *CurlClass) Data(key string, value any) *CurlClass

Data - 定义请求数据

func (*CurlClass) Datas added in v1.5.0

func (this *CurlClass) Datas(data map[string]any) *CurlClass

Datas - 批量定义请求数据

func (*CurlClass) Delete added in v1.5.0

func (this *CurlClass) Delete(url string) *CurlClass

Delete - 发起 DELETE 请求

func (*CurlClass) Get added in v1.5.0

func (this *CurlClass) Get(url string) *CurlClass

Get - 发起 GET 请求

func (*CurlClass) Header added in v1.5.0

func (this *CurlClass) Header(key any, value any) *CurlClass

Header - 定义请求头

func (*CurlClass) Headers added in v1.5.0

func (this *CurlClass) Headers(headers map[string]any) *CurlClass

Headers - 批量定义请求头

func (*CurlClass) Method added in v1.5.0

func (this *CurlClass) Method(method string) *CurlClass

Method - 定义请求类型 - 默认 GET

func (*CurlClass) Patch added in v1.5.0

func (this *CurlClass) Patch(url string) *CurlClass

Patch - 发起 PATCH 请求

func (*CurlClass) Post added in v1.5.0

func (this *CurlClass) Post(url string) *CurlClass

Post - 发起 POST 请求

func (*CurlClass) Put added in v1.5.0

func (this *CurlClass) Put(url string) *CurlClass

Put - 发起 PUT 请求

func (*CurlClass) Query added in v1.5.0

func (this *CurlClass) Query(key any, value any) *CurlClass

Query - 定义请求参数

func (*CurlClass) Querys added in v1.5.0

func (this *CurlClass) Querys(params map[string]any) *CurlClass

Querys - 批量定义请求参数

func (*CurlClass) Send added in v1.5.0

func (this *CurlClass) Send() *CurlResponse

Send - 发起请求

func (*CurlClass) Url added in v1.5.0

func (this *CurlClass) Url(url string) *CurlClass

Url - 定义请求地址

type CurlRequest

type CurlRequest struct {
	Body    any
	Url     string
	Method  string
	Client  *http.Client
	Data    map[string]any
	Query   map[string]any
	Headers map[string]any
}

CurlRequest - 发起请求的结构体

type CurlResponse

type CurlResponse struct {
	StatusCode int
	Request    *http.Request
	Headers    *http.Header
	Body       *io.ReadCloser
	Byte       []byte
	Text       string
	Json       map[string]any
	Error      error
}

CurlResponse - 响应的结构体

type DateClass added in v1.6.3

type DateClass struct {
	Time time.Time
}
var Date *DateClass

func (*DateClass) Format added in v1.6.3

func (this *DateClass) Format(layout string) string

Format 格式化日期

func (*DateClass) FormatSeconds added in v1.6.3

func (this *DateClass) FormatSeconds(seconds any) string

FormatSeconds 将秒数格式化为友好的时间字符串

type EnvClass added in v1.5.0

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

func Env

func Env() *EnvClass

func (*EnvClass) All added in v1.5.0

func (this *EnvClass) All() (result map[string]any)

func (*EnvClass) Get added in v1.5.0

func (this *EnvClass) Get(key any, def ...any) (result any)

func (*EnvClass) Mode added in v1.5.0

func (this *EnvClass) Mode(mode string) *EnvClass

func (*EnvClass) Path added in v1.5.0

func (this *EnvClass) Path(path string) *EnvClass

func (*EnvClass) TomlAll added in v1.5.0

func (this *EnvClass) TomlAll() (result any)

type FileCacheClient

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

func NewFileCache

func NewFileCache(dir any, expire any, prefix ...any) (*FileCacheClient, error)

NewFileCache - 新建文件缓存 *

  • @param dir 缓存目录
  • @param prefix 缓存名前缀
  • @return *FileCacheClient, error
  • @example:
  • 1. cache, err := facade.NewFileCacheClient("runtime/cache")
  • 2. cache, err := facade.NewFileCacheClient("runtime/cache", "cache_")

func (*FileCacheClient) Clear

func (this *FileCacheClient) Clear() (ok bool)

Clear 清空缓存

func (*FileCacheClient) ClearE

func (this *FileCacheClient) ClearE() (err error)

ClearE 清空缓存

func (*FileCacheClient) Del

func (this *FileCacheClient) Del(key any) (ok bool)

Del 从缓存中删除key对应的数据

func (*FileCacheClient) DelE

func (this *FileCacheClient) DelE(key any) (err error)

DelE 从缓存中删除key对应的数据

func (*FileCacheClient) DelPrefix

func (this *FileCacheClient) DelPrefix(prefix ...any) (ok bool)

DelPrefix 从缓存中删除指定前缀的数据

func (*FileCacheClient) DelPrefixE

func (this *FileCacheClient) DelPrefixE(prefix ...any) (err error)

DelPrefixE 删除指定前缀的缓存

func (*FileCacheClient) DelTags

func (this *FileCacheClient) DelTags(tags ...any) (ok bool)

DelTags 从缓存中删除指定标签的数据

func (*FileCacheClient) DelTagsE

func (this *FileCacheClient) DelTagsE(tag ...any) (err error)

DelTagsE 删除指定标签的缓存

func (*FileCacheClient) Get

func (this *FileCacheClient) Get(key any) (result []byte)

Get 从缓存中获取key对应的数据

func (*FileCacheClient) GetInfo

func (this *FileCacheClient) GetInfo(key any) (info map[string]any)

GetInfo 获取缓存信息

func (*FileCacheClient) GetKeys

func (this *FileCacheClient) GetKeys() (slice []string)

GetKeys 获取所有缓存的key

func (*FileCacheClient) Has

func (this *FileCacheClient) Has(key any) (exist bool)

Has 检查缓存中是否存在key对应的数据

func (*FileCacheClient) Set

func (this *FileCacheClient) Set(key any, value []byte, expire ...any) (ok bool)

Set 将key-value数据加入到缓存中

func (*FileCacheClient) SetE

func (this *FileCacheClient) SetE(key any, value []byte, expire int64) (err error)

SetE 将key-value数据加入到缓存中

type FileCacheClientItem

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

type FileRequest

type FileRequest struct {
	// 文件名
	Name string
	// 文件路径(包含文件名)
	Path string
	// 目录路径(不包含文件名)
	Dir string
	// 文件后缀
	Ext string
	// 限制行数
	Limit int
	// 读取偏移量
	Page int
	// 返回结果格式
	Format string
	// 是否包含子目录
	Sub bool
	// 域名 - 用于拼接文件路径
	Domain string
	// 前缀 - 用于过滤前缀
	Prefix string
}

FileRequest - File 请求

type FileResponse

type FileResponse struct {
	Error  error
	Result any
	Text   string
	Byte   []byte
	Slice  []any
}

FileResponse - File 响应

type FileStruct

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

FileStruct - File 结构体

func File

func File(request ...FileRequest) *FileStruct

File - 文件系统

func (*FileStruct) Byte

func (this *FileStruct) Byte(path ...any) (result *FileResponse)

Byte 获取文件字节

func (*FileStruct) Dir

func (this *FileStruct) Dir(dir any) *FileStruct

Dir 设置目录路径(不包含文件名,如:/tmp)

func (*FileStruct) DirInfo

func (this *FileStruct) DirInfo(dir ...any) (result *FileResponse)

DirInfo 获取目录信息

func (*FileStruct) Domain

func (this *FileStruct) Domain(domain any) *FileStruct

Domain 设置域名(用于拼接文件路径)

func (*FileStruct) Download

func (this *FileStruct) Download(path ...any) (result *FileResponse)

Download 下载文件 *

  • @param path1 远程文件路径(下载地址)
  • @param path2 本地文件路径(保存路径,包含文件名)
  • @return *FileResponse
  • @example:
  • 1. item := utils.File().Download("https://inis.cn/name.zip", "public/test.zip")
  • 2. item := utils.File().Dir("public").Name("test.zip").Download("https://inis.cn/name.zip")
  • 3. item := utils.File(utils.FileRequest{ Path: "https://inis.cn/name.zip", Name: "test.zip", Dir: "public", }).Download()

func (*FileStruct) EnZip

func (this *FileStruct) EnZip() (result *FileResponse)

EnZip 压缩文件 *

  • @return *FileResponse
  • @example:
  • 1. item := utils.File().Dir("public").Name("name.zip").EnZip()
  • 2. item := utils.File().Dir("public").Path("public/name.zip").EnZip()
  • 3. item := utils.File(utils.FileRequest{ Path: "public/name.zip", Dir: "public", }).EnZip()

func (*FileStruct) Exist

func (this *FileStruct) Exist(path ...any) (ok bool)

Exist 判断文件是否存在

func (*FileStruct) Ext

func (this *FileStruct) Ext(ext any) *FileStruct

Ext 设置文件后缀(如:.txt)

func (*FileStruct) Limit

func (this *FileStruct) Limit(limit any) *FileStruct

Limit 设置限制行数

func (*FileStruct) Line

func (this *FileStruct) Line(path ...any) (result *FileResponse)

Line 按行读取文件

func (*FileStruct) List

func (this *FileStruct) List(path ...any) (result *FileResponse)

List 获取指定目录下的所有文件

func (*FileStruct) Name

func (this *FileStruct) Name(name any) *FileStruct

Name 设置文件名(不包含路径,如:test.txt)

func (*FileStruct) Page

func (this *FileStruct) Page(page any) *FileStruct

Page 设置读取偏移量

func (*FileStruct) Path

func (this *FileStruct) Path(path any) *FileStruct

Path 设置文件路径(包含文件名,如:/tmp/test.txt)

func (*FileStruct) Prefix

func (this *FileStruct) Prefix(prefix any) *FileStruct

Prefix 设置前缀(用于过滤前缀)

func (*FileStruct) Remove

func (this *FileStruct) Remove(path ...any) (result *FileResponse)

Remove 删除文件或目录

func (*FileStruct) Rename

func (this *FileStruct) Rename(path ...any) (result *FileResponse)

Rename 重命名文件

func (*FileStruct) Save

func (this *FileStruct) Save(reader io.Reader, path ...string) (result *FileResponse)

Save 保存文件

func (*FileStruct) UnZip

func (this *FileStruct) UnZip() (result *FileResponse)

UnZip 解压文件 *

  • @return *FileResponse
  • @example:
  • 1. item := utils.File().Dir("public").Name("name.zip").UnZip()
  • 2. item := utils.File().Dir("public").Path("public/name.zip").UnZip()
  • 3. item := utils.File(utils.FileRequest{ Path: "public/name.zip", Dir: "public", }).UnZip()

type FormatClass added in v1.5.0

type FormatClass struct{}
var Format *FormatClass

func (*FormatClass) Query added in v1.5.0

func (this *FormatClass) Query(data any) (result string)

Query 转 Query 格式

type GetClass added in v1.5.0

type GetClass struct{}
var Get *GetClass

Get - 获取

func (*GetClass) Ip added in v1.5.0

func (this *GetClass) Ip(key ...string) (result any)

Ip - 获取客户端IP

func (*GetClass) Mac added in v1.5.0

func (this *GetClass) Mac() (result string)

Mac - 获取本机MAC

func (*GetClass) Pid added in v1.5.0

func (this *GetClass) Pid() (result int)

Pid - 获取进程ID

func (*GetClass) Pwd added in v1.5.0

func (this *GetClass) Pwd() (result string)

Pwd - 获取当前目录

func (*GetClass) Type added in v1.5.0

func (this *GetClass) Type(value any) (result string)

Type - 获取数据类型

type HashClass added in v1.5.0

type HashClass struct{}
var Hash *HashClass

Hash - 哈希加密

func (*HashClass) Number added in v1.5.0

func (this *HashClass) Number(length any) (result string)

Number 生成指定长度的随机数 *

  • @param length 长度
  • @return result 随机数
  • @example:
  • 1. number := facade.Hash.Number(6)

func (*HashClass) Sum32 added in v1.5.0

func (this *HashClass) Sum32(text any) (result string)

Sum32 - 哈希加密

func (*HashClass) Token added in v1.5.0

func (this *HashClass) Token(value any, length int) (result string)

Token 生成指定长度的指纹令牌 *

  • @param value 值
  • @param length 令牌长度,默认长度为 16
  • @example:
  • token := utils.Hash.Token("test", 16)

type IsClass added in v1.5.0

type IsClass struct{}
var Is *IsClass

Is - 是否为

func (*IsClass) Accepted added in v1.5.0

func (this *IsClass) Accepted(value any) (ok bool)

Accepted - 验证某个字段是否为为 yes, on, 或是 1

func (*IsClass) ActiveUrl added in v1.5.0

func (this *IsClass) ActiveUrl(value any) (ok bool)

ActiveUrl - 是否为有效的域名或者IP

func (*IsClass) Alpha added in v1.5.0

func (this *IsClass) Alpha(value any) (ok bool)

Alpha - 只能包含字母

func (*IsClass) AlphaDash added in v1.5.0

func (this *IsClass) AlphaDash(value any) (ok bool)

AlphaDash - 只能包含字母、数字和下划线_及破折号-

func (*IsClass) AlphaNum added in v1.5.0

func (this *IsClass) AlphaNum(value any) (ok bool)

AlphaNum - 只能包含字母和数字

func (*IsClass) Array added in v1.5.0

func (this *IsClass) Array(value any) (ok bool)

Array - 是否为数组

func (*IsClass) Bool added in v1.5.0

func (this *IsClass) Bool(value any) (ok bool)

Bool - 是否为bool

func (*IsClass) Chs added in v1.5.0

func (this *IsClass) Chs(value any) (ok bool)

Chs - 是否为汉字

func (*IsClass) ChsAlpha added in v1.5.0

func (this *IsClass) ChsAlpha(value any) (ok bool)

ChsAlpha - 只能是汉字、字母

func (*IsClass) ChsAlphaNum added in v1.5.0

func (this *IsClass) ChsAlphaNum(value any) (ok bool)

ChsAlphaNum - 只能是汉字、字母和数字

func (*IsClass) ChsDash added in v1.5.0

func (this *IsClass) ChsDash(value any) (ok bool)

ChsDash - 只能是汉字、字母、数字和下划线_及破折号-

func (*IsClass) Cntrl added in v1.5.0

func (this *IsClass) Cntrl(value any) (ok bool)

Cntrl - 是否为控制字符 - (换行、缩进、空格)

func (*IsClass) Date added in v1.5.0

func (this *IsClass) Date(date any) (ok bool)

Date - 是否为日期类型

func (*IsClass) Domain added in v1.5.0

func (this *IsClass) Domain(domain any) (ok bool)

Domain - 是否为域名

func (*IsClass) Email added in v1.5.0

func (this *IsClass) Email(email any) (ok bool)

Email - 是否为邮箱

func (*IsClass) Empty added in v1.5.0

func (this *IsClass) Empty(args ...any) (ok bool)

Empty - 是否为空 - 全部为空才返回 true

func (*IsClass) False added in v1.5.0

func (this *IsClass) False(value any) (ok bool)

False - 是否为假

func (*IsClass) Float added in v1.5.0

func (this *IsClass) Float(value any) (ok bool)

Float - 是否为浮点数

func (*IsClass) Graph added in v1.5.0

func (this *IsClass) Graph(value any) (ok bool)

Graph - 是否为可见字符 - (除空格外的所有可打印字符)

func (*IsClass) IdCard added in v1.5.0

func (this *IsClass) IdCard(value any) (ok bool)

IdCard - 是否为有效的身份证号码

func (*IsClass) Ip added in v1.5.0

func (this *IsClass) Ip(ip any) (ok bool)

Ip - 是否为IP

func (*IsClass) JsonString added in v1.5.0

func (this *IsClass) JsonString(value any) (ok bool)

JsonString - 是否为json字符串

func (*IsClass) Lower added in v1.5.0

func (this *IsClass) Lower(value any) (ok bool)

Lower - 是否为小写字母

func (*IsClass) MacAddr added in v1.5.0

func (this *IsClass) MacAddr(value any) (ok bool)

MacAddr - 是否为有效的MAC地址

func (*IsClass) Map added in v1.5.0

func (this *IsClass) Map(value any) (ok bool)

Map - 是否为map

func (*IsClass) MapAny added in v1.5.0

func (this *IsClass) MapAny(value any) (ok bool)

MapAny - 是否为[]map[string]any

func (*IsClass) Mobile added in v1.5.0

func (this *IsClass) Mobile(value any) (ok bool)

Mobile - 是否为手机号

func (*IsClass) Number added in v1.5.0

func (this *IsClass) Number(value any) (ok bool)

Number - 是否为数字

func (*IsClass) Phone added in v1.5.0

func (this *IsClass) Phone(phone any) (ok bool)

Phone - 是否为手机号

func (*IsClass) Slice added in v1.5.0

func (this *IsClass) Slice(value any) (ok bool)

Slice - 是否为切片

func (*IsClass) SliceSlice added in v1.5.0

func (this *IsClass) SliceSlice(value any) (ok bool)

SliceSlice - 是否为二维切片

func (*IsClass) Space added in v1.5.0

func (this *IsClass) Space(value any) (ok bool)

Space - 是否为空白字符 - (空格、制表符、换页符等)

func (*IsClass) String added in v1.5.0

func (this *IsClass) String(value any) (ok bool)

String - 是否为字符串

func (*IsClass) True added in v1.5.0

func (this *IsClass) True(value any) (ok bool)

True - 是否为真

func (*IsClass) Upper added in v1.5.0

func (this *IsClass) Upper(value any) (ok bool)

Upper - 是否为大写字母

func (*IsClass) Url added in v1.5.0

func (this *IsClass) Url(url any) (ok bool)

Url - 是否为URL

func (*IsClass) Xdigit added in v1.5.0

func (this *IsClass) Xdigit(value any) (ok bool)

Xdigit - 是否为十六进制字符 - (0-9、a-f、A-F)

func (*IsClass) Zip added in v1.5.0

func (this *IsClass) Zip(value any) (ok bool)

Zip - 是否为有效的邮政编码

type JsonClass added in v1.5.0

type JsonClass struct{}
var Json *JsonClass

Json - JSON 处理

func (*JsonClass) Decode added in v1.5.0

func (this *JsonClass) Decode(data any) (result any)

Decode 解码

func (*JsonClass) Encode added in v1.5.0

func (this *JsonClass) Encode(data any) (result string)

Encode 编码

func (*JsonClass) Get added in v1.5.0

func (this *JsonClass) Get(jsonString any, key any) (result any, err error)

Get 获取json中的值 - 支持多级

func (*JsonClass) String added in v1.5.0

func (this *JsonClass) String(data any) (result string)

String map转json字符串

func (*JsonClass) Unmarshal added in v1.5.0

func (this *JsonClass) Unmarshal(data []byte, result any) (err error)

Unmarshal 解码

func (*JsonClass) Valid added in v1.5.0

func (this *JsonClass) Valid(data any) (result bool)

Valid - 验证JSON数据

type LangClass added in v1.5.0

type LangClass struct {
	Directory string // 语言包目录
	Lang      string // 当前语言
	Mode      string // 文件类型
}
var Lang *LangClass

func (*LangClass) AcceptLanguage added in v1.6.0

func (this *LangClass) AcceptLanguage(value any) (string, []Language, error)

AcceptLanguage - 解析请求头的 Accept-Language

func (*LangClass) New added in v1.6.0

func (this *LangClass) New(model ...LangClass) *LangClass

New 实例化

func (*LangClass) Value added in v1.5.0

func (this *LangClass) Value(key any, args ...any) (result any)

type Language added in v1.5.10

type Language struct {
	Language string
	Quality  float64
}

type MaskClass added in v1.5.6

type MaskClass struct{}
var Mask *MaskClass

Mask - 脱敏

func (*MaskClass) BankCard added in v1.5.6

func (this *MaskClass) BankCard(bankCard string) string

BankCard - 银行卡号脱敏

func (*MaskClass) Custom added in v1.5.6

func (this *MaskClass) Custom(str string, start, end int) string

Custom - 自定义脱敏

func (*MaskClass) Email added in v1.5.6

func (this *MaskClass) Email(email string) string

Email - 邮箱脱敏

func (*MaskClass) IDCard added in v1.5.6

func (this *MaskClass) IDCard(idCard string) string

IDCard - 身份证号脱敏

func (*MaskClass) Password added in v1.5.6

func (this *MaskClass) Password(password string) string

Password - 密码脱敏

func (*MaskClass) Phone added in v1.5.6

func (this *MaskClass) Phone(phone string) string

Phone - 手机号脱敏

type MimeClass added in v1.5.0

type MimeClass struct{}
var Mime *MimeClass

func (*MimeClass) Type added in v1.5.0

func (this *MimeClass) Type(suffix any) (mime string)

Type 获取后缀对应的 mime

type NetClass added in v1.5.0

type NetClass struct{}
var Net *NetClass

Net - 网络

func (*NetClass) Tcping added in v1.5.0

func (this *NetClass) Tcping(host any, opts ...map[string]any) (ok bool, detail []map[string]any)

type ParseClass added in v1.5.0

type ParseClass struct{}
var Parse *ParseClass

Parse - 解析

func (*ParseClass) Domain added in v1.5.0

func (this *ParseClass) Domain(value any) (domain string)

Domain - 解析域名

func (*ParseClass) Params added in v1.5.0

func (this *ParseClass) Params(params map[string]any) (result map[string]any)

Params - 解析参数 把 Content-Type = application/x-www-form-urlencoded 的参数解析成 map[string]any

func (*ParseClass) ParamsBefore added in v1.5.0

func (this *ParseClass) ParamsBefore(params url.Values) (result map[string]any)

ParamsBefore - 解析参数 把 Content-Type = application/x-www-form-urlencoded 的参数解析成 object.deep.age = 10 的格式

type PasswordStruct

type PasswordStruct struct{}
var Password *PasswordStruct

Password - 密码

func (*PasswordStruct) Create

func (this *PasswordStruct) Create(password any) (result string)

Create - 创建密码

func (*PasswordStruct) Verify

func (this *PasswordStruct) Verify(encode any, password any) (ok bool)

Verify - 验证密码

type RSAClass added in v1.5.0

type RSAClass struct{}
var RSA *RSAClass

func (*RSAClass) Decrypt added in v1.5.0

func (this *RSAClass) Decrypt(privateKey, text string) (result *RSAResponse)

Decrypt 解密

func (*RSAClass) Encrypt added in v1.5.0

func (this *RSAClass) Encrypt(publicKey, text string) (result *RSAResponse)

Encrypt 加密

func (*RSAClass) Generate added in v1.5.0

func (this *RSAClass) Generate(bits any) (result *RSAResponse)

Generate 生成 RSA 密钥对 *

  • @name Generate 生成 RSA 密钥对
  • @param bits 位数 1024, 2048, 4096(一般:2048)

func (*RSAClass) PrivatePem added in v1.5.0

func (this *RSAClass) PrivatePem(key string) (cert string)

PrivatePem - 输出完整的 PEM 格式私钥证书

func (*RSAClass) PublicPem added in v1.5.0

func (this *RSAClass) PublicPem(key string) (cert string)

PublicPem - 输出完整的 PEM 格式公钥证书

type RSAResponse

type RSAResponse struct {
	// 私钥
	PrivateKey string
	// 公钥
	PublicKey string
	// 错误信息
	Error error
	// 文本
	Text string
}

type RandClass added in v1.5.0

type RandClass struct{}
var Rand *RandClass

Rand - 随机数

func (*RandClass) Code added in v1.5.0

func (this *RandClass) Code(length any, mode ...string) (result string)

Code - 生成随机验证码 number:数字, letter:字母, mix:混合

func (*RandClass) Int added in v1.5.0

func (this *RandClass) Int(max any, min ...any) (result int)

Int - 生成随机整数

func (*RandClass) MapSlice added in v1.5.0

func (this *RandClass) MapSlice(slice []map[string]any) (result []map[string]any)

MapSlice - 打乱切片顺序

func (*RandClass) Number added in v1.5.0

func (this *RandClass) Number(length any) (result string)

Number - 生成指定长度的随机数

func (*RandClass) Slice added in v1.5.0

func (this *RandClass) Slice(slice []any, limit any) (result []any)

Slice - 返回随机的指定长度的切片

func (*RandClass) String added in v1.5.0

func (this *RandClass) String(length any, chars ...string) (result string)

String - 生成随机字符串

type Resp added in v1.4.3

type Resp struct {
	// 消息
	Msg string `json:"msg"`
	// 状态码
	Code int `json:"code"`
	// 数据
	Data any `json:"data"`
}

Resp - 返回数据结构

type StructClass added in v1.5.0

type StructClass struct{}
var Struct *StructClass

Struct - 操作结构体

func (*StructClass) Del added in v1.5.0

func (this *StructClass) Del(obj any, key string)

Del - 删除结构体的字段

func (*StructClass) Fields added in v1.5.9

func (this *StructClass) Fields(dest any) []string

Fields - 获取结构体的字段名

func (*StructClass) Get added in v1.5.0

func (this *StructClass) Get(obj any, key string) (result any)

Get - 动态获取结构体的值

func (*StructClass) Has added in v1.5.0

func (this *StructClass) Has(obj any, key string) (ok bool)

Has - 判断结构体是否存在某个字段

func (*StructClass) Keys added in v1.5.0

func (this *StructClass) Keys(obj any) (slice []string)

Keys - 获取结构体的字段

func (*StructClass) Len added in v1.5.0

func (this *StructClass) Len(obj any) (length int)

Len - 获取结构体的长度

func (*StructClass) Map added in v1.5.0

func (this *StructClass) Map(obj any) (result map[string]any)

Map - 将结构体转换为map

func (*StructClass) Set added in v1.5.0

func (this *StructClass) Set(obj any, key string, val any)

Set - 动态给结构体赋值

func (*StructClass) Slice added in v1.5.0

func (this *StructClass) Slice(obj any) (slice []any)

Slice - 将结构体转换为切片

func (*StructClass) ToAsciiString added in v1.5.0

func (this *StructClass) ToAsciiString(obj any) (result string)

ToAsciiString - 将结构体转换为ASCII字符串

func (*StructClass) ToStringMap added in v1.5.0

func (this *StructClass) ToStringMap(obj any) (result map[string]any)

ToStringMap - 将结构体转换为map[string]any

func (*StructClass) Values added in v1.5.0

func (this *StructClass) Values(obj any) (slice []any)

Values - 获取结构体的值

type UnityClass added in v1.5.0

type UnityClass struct{}
var Unity *UnityClass

Unity - 统一规范化

func (*UnityClass) Float added in v1.5.7

func (this *UnityClass) Float(value ...any) (array []float64)

Float 参数归一化

func (*UnityClass) Ids added in v1.5.0

func (this *UnityClass) Ids(param ...any) (ids []any)

Ids 参数归一化

func (*UnityClass) Int added in v1.5.7

func (this *UnityClass) Int(value ...any) (array []int)

Int 参数归一化

func (*UnityClass) Join added in v1.6.5

func (this *UnityClass) Join(elems any, unique bool, sep ...string) string

Join - 数组转字符串

func (*UnityClass) Keys added in v1.5.0

func (this *UnityClass) Keys(param any, reg ...any) (keys []any)

Keys 参数归一化

type UrlClass added in v1.5.0

type UrlClass struct {
}

func (*UrlClass) Encoded added in v1.5.0

func (this *UrlClass) Encoded(params map[string]any) string

Encoded - 将 map 编码为 URL 查询字符串 - x-www-form-urlencoded

func (*UrlClass) EncodedKeys added in v1.5.0

func (this *UrlClass) EncodedKeys(params map[string]any) []string

EncodedKeys - 获取 URL 查询字符串的键

type VersionClass added in v1.5.0

type VersionClass struct{}
var Version *VersionClass

Version - 版本

func (*VersionClass) Compare added in v1.5.0

func (this *VersionClass) Compare(v1, v2 any) (result int)

Compare - 版本号比对 *

  • @param v1 string - 小版本号
  • @param v2 string - 大版本号
  • @return int - 0: 相等,1: v1 < v2,-1: v1 > v2
  • @example:
  • utils.Version.Compare("1.2.0", "1.0.0") // 1

func (*VersionClass) Go added in v1.5.0

func (this *VersionClass) Go() (result string)

Go - 获取当前go版本号

type ViperClass added in v1.5.0

type ViperClass struct {
	// 配置文件路径
	Path string
	// 配置文件类型
	Mode string
	// 文件名
	Name string
	// 文件内容
	Content string
}

func Viper

func Viper(model ...ViperClass) *ViperClass

func (*ViperClass) Read added in v1.5.0

func (this *ViperClass) Read() (result ViperResponse)

func (*ViperClass) SetMode added in v1.5.0

func (this *ViperClass) SetMode(mode string) *ViperClass

func (*ViperClass) SetName added in v1.5.0

func (this *ViperClass) SetName(name string) *ViperClass

func (*ViperClass) SetPath added in v1.5.0

func (this *ViperClass) SetPath(path string) *ViperClass

type ViperResponse

type ViperResponse struct {
	// 配置文件内容
	Result map[string]any
	// 错误信息
	Error error
	// viper实例
	Viper *viper.Viper
}

func (*ViperResponse) Get

func (this *ViperResponse) Get(key string, def ...any) (result any)

func (*ViperResponse) Set

func (this *ViperResponse) Set(key string, value any) (result ViperResponse)

Jump to

Keyboard shortcuts

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