go-easy-utils 2.0 正式发布,全面支持泛型和any

这篇具有很好参考价值的文章主要介绍了go-easy-utils 2.0 正式发布,全面支持泛型和any。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

这是一个基于 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文章来源地址https://www.toymoban.com/news/detail-412290.html

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 

到了这里,关于go-easy-utils 2.0 正式发布,全面支持泛型和any的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IntelliJ IDEA 2023.1正式发布,Maven项目大提速&支持Apache Dubbo

    你好,我是 YourBatman :做爱做之事❣交配交之人。 一年一个大版本,共计3个中型版本 ,北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩,吃肉之前,可以先把这几碗汤干了,更有助于消化(每篇都很顶哦): IntelliJ IDEA 2023.1正式发布,Maven项目大提

    2023年04月20日
    浏览(70)
  • Flink CDC 2.4 正式发布,新增 Vitess 数据源,更多连接器支持增量快照,升级 Debezium 版本

    Flink CDC [1] 是基于数据库的日志 CDC 技术,实现了全增量一体化读取的数据集成框架。配合 Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。 作为新一代的实时数据集成框架,Flink CDC 具有全增量一体化、无锁读取、并行读取、表结构变更

    2024年02月12日
    浏览(41)
  • Flink CDC 2.4 正式发布,5分钟了解CDC 2.4新内容,新增 Vitess 数据源,更多连接器支持增量快照,升级 Debezium 版本

    来源:https://ververica.github.io/flink-cdc-connectors/master/ Flink CDC [1] 是基于数据库的日志 CDC 技术,实现了全增量一体化读取的数据集成框架。配合 Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。 具体关于Flink CDC是什么?可以看下这篇文字 作

    2024年02月12日
    浏览(45)
  • Glary Utilities Pro - 电脑系统优化全面指南:详尽使用教程

    软件简介:  Glary Utilities Pro 是一款全面的电脑优化工具,它旨在帮助用户提升计算机的性能和稳定性。这款软件提供了多种功能,包括系统清理、优化、修复以及保护。通过一键扫描,它可以识别并清除无用文件、临时数据、注册表错误等,从而释放硬盘空间,加速系统启

    2024年02月03日
    浏览(76)
  • 阿里云 SAE 2.0 正式商用:极简易用、百毫秒弹性效率,降本 40%

    作者:黛忻 本文主要介绍阿里云 Serverless 应用引擎(以下简称 SAE )如何帮助企业跨越技术鸿沟,从传统应用架构无感升级到 Serverless 架构,以更高效、更经济的方式进行转型,快速进入云原生快车道,让 2 人的研发团队享受 2000 人技术团队的红利。 早在 2018 年的 11 月,阿

    2024年01月23日
    浏览(46)
  • 仰望Cosmos星空的明与暗:全面解析ATOM 2.0

    摘要 作为第三代区块链,Cosmos SDK和Tendermint BFT降低了开发和运行公链的门槛。 Cosmos SDK建立独立生态链成为理想的app-chain搭建方式,使用这些基础设施的项目将超越智能合约应用,成为拥有专用区块链和自己的社群的可扩展系统。 多链跨链耦合和架构去耦合兼并特点。 Cosm

    2024年02月09日
    浏览(81)
  • 百度智能云正式上线Python SDK版本并全面开源!

    百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线Python SDK(下文均简称千帆 SDK)版本并全面开源,企业和开发者可免费下载使用!千帆SDK全面覆盖从数据集管理,模型训练,模型评估,到服务部署等方面的功能,用户可基于千帆SDK通过代码接入并

    2024年02月05日
    浏览(39)
  • 百度智能云正式上线Python SDK版本并全面开源

    百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线Python SDK(下文均简称千帆 SDK)版本并全面开源,企业和开发者可免费下载使用!千帆SDK全面覆盖从数据集管理,模型训练,模型评估,到服务部署等方面的功能,我们开发者可基于千帆SDK通过代码

    2024年02月05日
    浏览(40)
  • iOS17正式版9月18日正式发布!怎么更新即将发布的iOS17正式版?

    苹果在今天举办的“好奇心上头”发布会结束后,推送了iOS 17和iPadOS 17发布候选版本(Release Candidate Version),同时宣布将于9月18日面向iPhone和iPad 用户,推送iOS17/iPadOS 17正式版更新。苹果表示iOS 17的设计理念之一,不再让用户为了某些简单的任务打开独立的应用程序,而是贯

    2024年02月08日
    浏览(59)
  • 小程序发布体验版流程、发布正式版

    【注意】 如果使用的测试 appid 则【上传】按钮不能点击,必须使用真实 appid 上传成功后在 微信小程序公众平台 进行版本管理 点击下一步 点击“继续提交”,填写信息 点击 “提交审核” ↑ 提示 “当前提审的开发版本代码与隐私协议内容不匹配,请在当前提审页面,点击

    2023年04月25日
    浏览(148)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包