共计 4678 个字符,预计需要花费 12 分钟才能阅读完成。
介绍
这是一个基于 Go 语言开发的通用数据类型解决工具类,帮忙开发者在业务代码实现中解决常见的数据类型和数据操作。能够让您专一于您的业务代码的实现,而免去解决根本数据类型转换和验证的性能。该工具库无侵入式的设计能够让您的业务代码更容易浏览和优雅。
疾速开始
装置
应用 Go1.18
及以上版本的用户,倡议装置 v2.x.x
。因为 v2.x.x
利用 Go1.18
的泛型重写了大部分函数
go get -u github.com/jefferyjob/go-easy-utils
应用 Go1.18
以下版本的用户,必须装置 v1.x.x
。目前最新的 v1
版本是 v1.1.0
go get github.com/jefferyjob/go-easy-utils@v1.1.0
应用 Demo
package main | |
import ( | |
"fmt" | |
"github.com/jefferyjob/go-easy-utils/sliceUtil" | |
) | |
func main() {var slice = []string{"this", "is", "go", "easy", "utils"} | |
chunkSlice := sliceUtil.ChunkSlice(slice, 2) | |
fmt.Printf("%v", chunkSlice) | |
} |
性能列表
jsonUtil Json 解决工具
// JsonToStruct 将 JSON 字符串解析为指定的构造体指针 | |
func JsonToStruct(jsonData string, result any) error |
ValidUtil 验证工具
// IsTime 验证是否为工夫格局(HH:mm:ss)func IsTime(str string) bool | |
// IsDate 验证是否为日期格局(yyyy-MM-dd)func IsDate(str string) bool | |
// IsDateTime 验证是否为日期工夫格局(yyyy-MM-dd HH:mm:ss)func IsDateTime(str string) bool | |
// IsIDCard 验证身份证号 (18 或 15 位) | |
func IsIDCard(str string) bool | |
// IsIDCard18 验证 18 位身份证号 | |
func IsIDCard18(id string) bool | |
// IsIDCard15 验证 15 位身份证号 | |
func IsIDCard15(idCard string) bool | |
// IsMobile 验证是否为手机号码 | |
func IsMobile(mobileNum string) bool | |
// IsTelephone 验证是否为座机号码 | |
func IsTelephone(telephone string) bool | |
// IsPostalCode 验证是否为邮编号码 | |
func IsPostalCode(str string) bool | |
// IsDecimal 验证给定的字符串小数点后是否最多两位 | |
func IsDecimal(input string) bool | |
// IsNumber 验证是否全副为数字 | |
func IsNumber(input string) bool | |
// IsBankCardNo 验证是否为银行卡号 | |
func IsBankCardNo(str string) bool | |
// IsAllChinese 验证给定的字符串全副为中文 | |
func IsAllChinese(input string) bool | |
// IsContainChinese 验证给定的字符串蕴含中文 | |
func IsContainChinese(input string) bool | |
// IsEmail 是否为 email | |
func IsEmail(input string) bool | |
// IsIPv4 是否为 ipv4 地址 | |
func IsIPv4(input string) bool | |
// IsIPv6 是否为 ipv6 地址 | |
func IsIPv6(input string) bool | |
// IsURL 是否为 URL 地址 | |
func IsURL(input string) bool | |
// IsJSON 是否为 Json | |
func IsJSON(input string) bool | |
// IsChineseName 验证是否为中文名 | |
func IsChineseName(name string) bool | |
// IsEnglishName 验证是否为英文名 | |
func IsEnglishName(name string) bool | |
// IsQQ 验证是否为 QQ 号 | |
func IsQQ(qq string) bool | |
// IsWeChat 验证是否为微信号 | |
func IsWeChat(wechat string) bool | |
// IsWeibo 验证是否为微博 ID | |
func IsWeibo(weibo string) bool | |
// IsPassword 验证明码是否非法 | |
// 明码长度在 6 -20 个字符之间,只蕴含数字、字母和下划线 | |
func IsPassword(password string) bool |
strUtil 字符串工具
// StrToInt string 转 int | |
func StrToInt(v string) int | |
// StrToInt8 string 转 int8 | |
func StrToInt8(v string) int8 | |
// StrToInt16 string 转 int16 | |
func StrToInt16(v string) int16 | |
// StrToInt32 string 转 int32 | |
func StrToInt32(v string) int32 | |
// StrToInt64 string 转 int64 | |
func StrToInt64(v string) int64 | |
// StrToUint string 转 uint | |
func StrToUint(v string) uint | |
// StrToUint8 string 转 uint8 | |
func StrToUint8(v string) uint8 | |
// StrToUint16 string 转 uint16 | |
func StrToUint16(v string) uint16 | |
// StrToUint32 string 转 uint32 | |
func StrToUint32(v string) uint32 | |
// StrToUint64 string 转 uint64 | |
func StrToUint64(v string) uint64 | |
// StrToBytes 字符串转字节数组 | |
func StrToBytes(v string) []byte |
sliceUtil 切片解决工具
// Chunk 把 slice 宰割为新的数组块 | |
func ChunkSlice(slice []T, size int) [][]T | |
// Column 获取 slice 中某个繁多列的值 | |
func ColumnSlice(slice []T, column string) []any | |
// In 判断 value 是否在 slice 中 | |
func InSlice(value T, slices []T) bool | |
// Is 判断指定值 i 是否是 slice 类型 | |
func IsSlice(slice any) bool | |
// Merge 将多个 slice 合并成一个 slice | |
func MergeSlice(slices ...[]T) []T | |
// Sum 对 slice 中的元素求和 | |
func SumSlice(slice []T) T | |
// Unique 移除 slice 中反复的值 | |
func UniqueSlice(slice []T) []T |
mapUtil map 类型解决
// MapKeyExists 判断 map 中的 key 是否存在 | |
func MapKeyExists((m map[T]T2, key T)) bool | |
// MapValueExists 判断 map 中的 value 是否存在 | |
func MapValueExists(m map[T2]T, value T) bool |
mathUtil
// Abs 返回一个数的绝对值 | |
func Abs(num T) T | |
// Ceil 对 float 数据向上取整 | |
func Ceil(num T) int | |
// Floor 对 float 数据向下取整 | |
func Floor(num T) int | |
// Max 返回 slice 中最大值 | |
func Max(slice []T) T | |
// Min 返回 slice 中最小值 | |
func Min(slice []T) T | |
// Round 对 float 数据四舍五入 | |
func Round(num T) int |
floatUtil 浮点型解决
// Float32ToStr float32 转字符串 | |
func Float32ToStr(f float32) string | |
// Float64ToStr float64 转字符串 | |
func Float64ToStr(f float64) string | |
// Float32ToFloat64 float32 转 float64 | |
func Float32ToFloat64(f float32) float64 | |
// Float64ToFloat32 float64 转 float32 | |
func Float64ToFloat32(f float64) float32 |
emoji 表情包
// DecodeEmojiUnicode Emoji 表情解码 | |
func DecodeEmojiUnicode(unicode string) string | |
// EncodeEmojiUnicode Emoji 表情编码 | |
func EncodeEmojiUnicode(emoji string) string |
cryptoUtil 加密与解密
// HashSHA256 hash 加密 | |
func HashSHA256(str string) string | |
// Md5 MD5 加密 | |
func Md5(string string) string |
byteUtil 字节数组
// BytesToStr 字节数组转字符串 | |
func BytesToStr(data []byte) string |
anyUtil 任意类型转换
// AnyToFloat32 将给定的值转换为 float32 | |
func AnyToFloat32(i any) (float32, error) | |
// AnyToFloat64 将给定的值转换为 float64 | |
func AnyToFloat64(i any) (float64, error) | |
// AnyToInt 将给定的值转换为 int | |
func AnyToInt(i any) (int, error) | |
// AnyToInt8 将给定的值转换为 int8 | |
func AnyToInt8(i any) (int8, error) | |
// AnyToInt16 将给定的值转换为 int16 | |
func AnyToInt16(i any) (int16, error) | |
// AnyToInt32 将给定的值转换为 int32 | |
func AnyToInt32(i any) (int32, error) | |
// AnyToInt64 将给定的值转换为 int64 | |
func AnyToInt64(i any) (int64, error) | |
// AnyToStr 任意类型数据转 string | |
func AnyToStr(i any) string | |
// AnyToUint 将给定的值转换为 uint | |
func AnyToUint(i any) (uint, error) | |
// AnyToUint8 将给定的值转换为 uint8 | |
func AnyToUint8(i any) (uint8, error) | |
// AnyToUint16 将给定的值转换为 uint16 | |
func AnyToUint16(i any) (uint16, error) | |
// AnyToUint32 将给定的值转换为 uint32 | |
func AnyToUint32(i any) (uint32, error) | |
// AnyToUint64 将给定的值转换为 uint64 | |
func AnyToUint64(i any) (uint64, error) | |
// AnyToBool 将给定的值转换为 bool | |
func AnyToBool(i any) bool |
正文完