博客列表 >go-easy-utils 强大的go项目开发辅助工具

go-easy-utils 强大的go项目开发辅助工具

李斌的技术博客
李斌的技术博客原创
2023年03月28日 09:48:56291浏览

包地址

https://github.com/jefferyjob/go-easy-utils/

介绍

这是一个基于 Go 语言开发的通用数据类型处理工具类,帮助开发者在业务代码实现中处理常见的数据类型和数据操作。可以让您专注于您的业务代码的实现,而免去处理基本数据类型转换和验证的功能。该工具库无侵入式的设计可以让您的业务代码更容易阅读和优雅。

快速开始

安装

  1. go get -u github.com/jefferyjob/go-easy-utils

使用Demo

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/jefferyjob/go-easy-utils/sliceUtil"
  5. )
  6. func main() {
  7. var slice = []string{"this", "is", "go", "easy", "utils"}
  8. chunkSlice := sliceUtil.ChunkStr(slice, 2)
  9. fmt.Printf("%v", chunkSlice)
  10. }

功能列表

jsonUtil Json处理工具

  1. // JsonToStruct 将 JSON 字符串解析为指定的结构体指针
  2. func JsonToStruct(jsonData string, result interface{}) error

ValidUtil 验证工具

  1. // IsTime 验证是否为时间格式(HH:mm:ss)
  2. func IsTime(str string) bool
  3. // IsDate 验证是否为日期格式(yyyy-MM-dd)
  4. func IsDate(str string) bool
  5. // IsDateTime 验证是否为日期时间格式(yyyy-MM-dd HH:mm:ss)
  6. func IsDateTime(str string) bool
  7. // IsIDCard 验证idcard号(18或15位)
  8. func IsIDCard(str string) bool
  9. // IsIDCard18 验证18位idcard
  10. func IsIDCard18(id string) bool
  11. // IsIDCard15 验证15位idcard
  12. func IsIDCard15(idCard string) bool
  13. // IsMobile 验证是否为手机号码
  14. func IsMobile(mobileNum string) bool
  15. // IsTelephone 验证是否为座机号码
  16. func IsTelephone(telephone string) bool
  17. // IsPostalCode 验证是否为邮编号码
  18. func IsPostalCode(str string) bool
  19. // IsDecimal 验证给定的字符串小数点后是否最多两位
  20. func IsDecimal(input string) bool
  21. // IsNumber 验证是否全部为数字
  22. func IsNumber(input string) bool
  23. // IsBankCardNo 验证是否为bank号
  24. func IsBankCardNo(str string) bool
  25. // IsAllChinese 验证给定的字符串全部为中文
  26. func IsAllChinese(input string) bool
  27. // IsContainChinese 验证给定的字符串包含中文
  28. func IsContainChinese(input string) bool
  29. // IsEmail 是否为email
  30. func IsEmail(input string) bool
  31. // IsIPv4 是否为ipv4地址
  32. func IsIPv4(input string) bool
  33. // IsIPv6 是否为ipv6地址
  34. func IsIPv6(input string) bool
  35. // IsURL 是否为URL地址
  36. func IsURL(input string) bool
  37. // IsJSON 是否为Json
  38. func IsJSON(input string) bool
  39. // IsChineseName 验证是否为中文名
  40. func IsChineseName(name string) bool
  41. // IsEnglishName 验证是否为英文名
  42. func IsEnglishName(name string) bool
  43. // IsQQ 验证是否为QQ号
  44. func IsQQ(qq string) bool
  45. // IsWeChat 验证是否为微信号
  46. func IsWeChat(wechat string) bool
  47. // IsWeibo 验证是否为微博ID
  48. func IsWeibo(weibo string) bool
  49. // IsPassword 验证密码是否合法
  50. // 密码长度在6-20个字符之间,只包含数字、字母和下划线
  51. func IsPassword(password string) bool

strUtil 字符串工具

  1. // StrToInt string转int
  2. func StrToInt(str string) int
  3. // StrToInt8 string转int8
  4. func StrToInt8(str string) int8
  5. // StrToInt16 string转int16
  6. func StrToInt16(str string) int16
  7. // StrToInt32 string转int32
  8. func StrToInt32(str string) int32
  9. // StrToInt64 string转int64
  10. func StrToInt64(str string) int64
  11. // StrToUint string转uint
  12. func StrToUint(str string) uint
  13. // StrToUint8 string转uint8
  14. func StrToUint8(str string) uint8
  15. // StrToUint16 string转uint16
  16. func StrToUint16(str string) uint16
  17. // StrToUint32 string转uint32
  18. func StrToUint32(str string) uint32
  19. // StrToUint64 string转uint64
  20. func StrToUint64(str string) uint64
  21. // StrToBytes 字符串转字节数组
  22. func StrToBytes(data string) []byte

sliceUtil 切片处理工具

  1. // Chunk 将一个切片按指定大小分成多个切片,并返回一个包含这些切片的二维切片。
  2. func Chunk(slice []interface{}, size int) [][]interface{}
  3. // ChunkStr 将一个 string 类型的切片切割成指定大小的多个子切片
  4. func ChunkStr(slice []string, size int) [][]string
  5. // ChunkInt 将一个 int 类型的切片切割成指定大小的多个子切片
  6. func ChunkInt(slice []int, size int) [][]int
  7. // ChunkInt8 将一个 int8 类型的切片切割成指定大小的多个子切片
  8. func ChunkInt8(slice []int8, size int) [][]int8
  9. // ChunkInt32 将一个 int32 类型的切片切割成指定大小的多个子切片
  10. func ChunkInt32(slice []int32, size int) [][]int32
  11. // ChunkInt64 将一个 int64 类型的切片切割成指定大小的多个子切片
  12. func ChunkInt64(slice []int64, size int) [][]int64
  13. // ChunkUint 将一个 uint 类型的切片切割成指定大小的多个子切片
  14. func ChunkUint(slice []uint, size int) [][]uint
  15. // ChunkUint8 将一个 uint8 类型的切片切割成指定大小的多个子切片
  16. func ChunkUint8(slice []uint8, size int) [][]uint8
  17. // ChunkUint16 将一个 uint16 类型的切片切割成指定大小的多个子切片
  18. func ChunkUint16(slice []uint16, size int) [][]uint16
  19. // ChunkUint32 将一个 uint32 类型的切片切分成固定大小的子切片
  20. func ChunkUint32(slice []uint32, size int) [][]uint32
  21. // ChunkUint64 将一个 uint64 类型的切片切分成固定大小的子切片
  22. func ChunkUint64(slice []uint64, size int) [][]uint64
  23. // InSlices 判断指定值value是否在指定的slice中存在
  24. func InSlices(value interface{}, slices []interface{}) bool
  25. // InStrSlices 判断指定值value是否在指定的slice中存在
  26. func InStrSlices(value string, slices []string) bool
  27. // InIntSlices 判断指定值value是否在指定的slice中存在
  28. func InIntSlices(value int, slices []int) bool
  29. // InInt8Slices 判断指定值value是否在指定的slice中存在
  30. func InInt8Slices(value int8, slices []int8) bool
  31. // InInt16Slices 判断指定值value是否在指定的slice中存在
  32. func InInt16Slices(value int16, slices []int16) bool
  33. // InInt32Slices 判断指定值value是否在指定的slice中存在
  34. func InInt32Slices(value int32, slices []int32) bool
  35. // InInt64Slices 判断指定值value是否在指定的slice中存在
  36. func InInt64Slices(value int64, slices []int64) bool
  37. // InUintSlices 判断指定值value是否在指定的slice中存在
  38. func InUintSlices(value uint, slices []uint) bool
  39. // InUint8Slices 判断指定值value是否在指定的slice中存在
  40. func InUint8Slices(value uint8, slices []uint8) bool
  41. // InUint16Slices 判断指定值value是否在指定的slice中存在
  42. func InUint16Slices(value uint16, slices []uint16) bool
  43. // InUint32Slices 判断指定值value是否在指定的slice中存在
  44. func InUint32Slices(value uint32, slices []uint32) bool
  45. // InUint64Slices 判断指定值value是否在指定的slice中存在
  46. func InUint64Slices(value uint64, slices []uint64) bool
  47. // MergeSlices 将多个slice合并成一个slice
  48. func MergeSlices(slices ...[]interface{}) []interface{}
  49. // MergeStrSlices 将多个slice合并成一个slice
  50. func MergeStrSlices(slices ...[]string) []string
  51. // MergeIntSlices 将多个slice合并成一个slice
  52. func MergeIntSlices(slices ...[]int) []int
  53. // MergeInt8Slices 将多个slice合并成一个slice
  54. func MergeInt8Slices(slices ...[]int8) []int8
  55. // MergeInt16Slices 将多个slice合并成一个slice
  56. func MergeInt16Slices(slices ...[]int16) []int16
  57. // MergeInt32Slices 将多个slice合并成一个slice
  58. func MergeInt32Slices(slices ...[]int32) []int32
  59. // MergeInt64Slices 将多个slice合并成一个slice
  60. func MergeInt64Slices(slices ...[]int64) []int64
  61. // MergeUintSlices 将多个slice合并成一个slice
  62. func MergeUintSlices(slices ...[]uint) []uint
  63. // MergeUint8Slices 将多个slice合并成一个slice
  64. func MergeUint8Slices(slices ...[]uint8) []uint8
  65. // MergeUint16Slices 将多个slice合并成一个slice
  66. func MergeUint16Slices(slices ...[]uint16) []uint16
  67. // MergeUint32Slices 将多个slice合并成一个slice
  68. func MergeUint32Slices(slices ...[]uint32) []uint32
  69. // MergeUint64Slices 将多个slice合并成一个slice
  70. func MergeUint64Slices(slices ...[]uint64) []uint64
  71. // SumIntSlice 对slice中的元素求和
  72. func SumIntSlice(slice []int) int
  73. // SumInt8Slice 对slice中的元素求和
  74. func SumInt8Slice(slice []int8) int8
  75. // SumInt16Slice 对slice中的元素求和
  76. func SumInt16Slice(slice []int16) int16
  77. // SumInt32Slice 对slice中的元素求和
  78. func SumInt32Slice(slice []int32) int32
  79. // SumInt64Slice 对slice中的元素求和
  80. func SumInt64Slice(slice []int64) int64
  81. // SumFloat32Slice 对slice中的元素求和
  82. func SumFloat32Slice(slice []float32) float32
  83. // SumFloat64Slice 对slice中的元素求和
  84. func SumFloat64Slice(slice []float64) float64

mapUtil map类型处理

  1. // MapValueExists 判断map中的value是否存在
  2. func MapValueExists(m map[string]interface{}, value interface{}) bool
  3. // MapKeyExists 判断map中的key是否存在
  4. func MapKeyExists(m map[string]interface{}, key string) bool

intUtil 数值型处理

  1. // IntToString 将int类型转换为string类型
  2. func IntToString(n int) string
  3. // Int8ToString 将int8类型转换为string类型
  4. func Int8ToString(n int8) string
  5. // Int16ToString 将int16类型转换为string类型
  6. func Int16ToString(n int16) string
  7. // Int32ToString 将int32类型转换为string类型
  8. func Int32ToString(n int32) string
  9. // Int64ToString 将int64类型转换为string类型
  10. func Int64ToString(n int64) string

floatUtil 浮点型处理

  1. // Float32ToStr float32转字符串
  2. func Float32ToStr(f float32) string
  3. // Float64ToStr float64转字符串
  4. func Float64ToStr(input float64) string
  5. // Float32ToFloat64 float32转float64
  6. func Float32ToFloat64(f float32) float64
  7. // Float64ToFloat32 float64转float32
  8. func Float64ToFloat32(f float64) float32

emoji表情包

  1. // DecodeEmojiUnicode Emoji表情解码
  2. func DecodeEmojiUnicode(unicode string) string
  3. // EncodeEmojiUnicode Emoji表情编码
  4. func EncodeEmojiUnicode(emoji string) string

cryptoUtil 加密与解密

  1. // HashSHA256 hash加密
  2. func HashSHA256(str string) string
  3. // Md5 MD5加密
  4. func Md5(string string) string

byteUtil 字节数组

  1. // BytesToStr 字节数组转字符串
  2. func BytesToStr(data []byte) string

anyUtil 任意类型转换

  1. // AnyToFloat32 将给定的值转换为float32
  2. func AnyToFloat32(i interface{}) (float32, error)
  3. // AnyToFloat64 将给定的值转换为float64
  4. func AnyToFloat64(i interface{}) (float64, error)
  5. // AnyToInt 将给定的值转换为 int
  6. func AnyToInt(i interface{}) (int, error)
  7. // AnyToInt8 将给定的值转换为 int8
  8. func AnyToInt8(i interface{}) (int8, error)
  9. // AnyToInt16 将给定的值转换为 int16
  10. func AnyToInt16(i interface{}) (int16, error)
  11. // AnyToInt32 将给定的值转换为 int32
  12. func AnyToInt32(i interface{}) (int32, error)
  13. // AnyToInt64 将给定的值转换为 int64
  14. func AnyToInt64(i interface{}) (int64, error)
  15. // AnyToStr 任意类型数据转string
  16. func AnyToStr(i interface{}) string
  17. // AnyToUint 将给定的值转换为 uint
  18. func AnyToUint(i interface{}) (uint, error)
  19. // AnyToUint8 将给定的值转换为 uint8
  20. func AnyToUint8(i interface{}) (uint8, error)
  21. // AnyToUint16 将给定的值转换为 uint16
  22. func AnyToUint16(i interface{}) (uint16, error)
  23. // AnyToUint32 将给定的值转换为 uint32
  24. func AnyToUint32(i interface{}) (uint32, error)
  25. // AnyToUint64 将给定的值转换为 uint64
  26. func AnyToUint64(i interface{}) (uint64, error)
  27. // AnyToBool 将给定的值转换为bool
  28. func AnyToBool(i interface{}) bool
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议