这是一个Go语言库,包含了一些实用的函数,方便您在开发中快速使用。
要使用这个库,您需要先将其安装到您的项目中。可以通过以下命令安装:
go get github.com/limitcool/libSetDebugMode(debugFunction func()): 用于设置调试模式的函数。它接受一个无参数的函数debugFunction作为参数,并根据环境变量DEBUG_MODE的值来决定是否执行该函数。
-
InSlice(element T, Slice []T) bool: 检查一个元素是否存在于切片中。 -
Unique(slice []T) []T: 返回一个去重后的切片。 -
Push(slice []T, element T) []T: 将一个元素添加到切片末尾。 -
Pop(slice []T) []T: 删除切片末尾的元素并返回。 -
PopFront(slice []T) []T: 删除切片开头的元素并返回。 -
Exclude(slice []T, element T) []T: 返回一个不包含指定元素的切片。 -
Reverse(s []T) []T: 反转切片中的元素顺序。
Keys(m map[K]V) []K: 返回一个映射中的所有键的切片。
-
FileExists(filename string) bool: 检查文件是否存在。 -
FolderExists(foldername string) bool: 检查文件夹是否存在。 -
FilesInFolder(dir, filename string) ([]string, error): 返回给定目录下包含指定文件的文件路径列表。 -
ReadFile(filename string) (string, error): 读取给定文件的内容并返回。 -
CopyDir(src, dst, skip string) error: 从源目录复制目录到目标目录,跳过具有特定后缀的文件。 -
CopyDirHasSuffix(src, dst, suffix string) error: 从源目录复制具有特定后缀的文件到目标目录,并重命名复制的文件。 -
CopyFile(src, dst string) error: 复制单个文件从源路径到目标路径。` -
ParentDir(p string) string: 返回给定路径的父目录。 -
BaseDir(p string) string: 返回给定路径的基本目录。 -
ParentBaseDir(p string) string: 返回给定路径的父目录的基本目录。 -
CompressDir(dir string) error: 将指定目录压缩为zip文件。
-
IntToBool(a T) bool: 将一个整数转换为布尔值。 -
ConvertAnyToInterface(anyValue *any.Any) (interface{}, error): 此函数将Google的protobuf的any.Any类型转换为Go的interface{}类型。它首先将any.Any类型解码为字节切片,然后使用json.Unmarshal将字节切片转换为interface{}类型。 -
ConvertInterfaceToAny(v interface{}) (*any.Any, error): 此函数将Go的interface{}类型转换为Google的protobuf的any.Any类型。它首先将interface{}类型编码为字节切片,然后使用anypb.MarshalFrom将字节切片转换为any.Any类型。 -
MustConvertInterfaceToAny(v interface{}) *any.Any: 此函数与ConvertInterfaceToAny功能相似,不同之处在于它忽略了可能的错误并返回一个未初始化的any.Any对象。 -
MustConvertAnyToInterface(anyValue *any.Any) interface{}: 此函数与ConvertAnyToInterface功能相似,不同之处在于它忽略了可能的错误并返回一个未初始化的interface{}对象。
-
MustMongoSlice2StringSlice(i interface{}) []string: 此函数将MongoDB的切片类型转换为Go的字符串切片类型。如果输入的接口类型是primitive.A类型,它会遍历该切片并将每个元素转换为字符串,然后将这些字符串添加到新的字符串切片中并返回。如果输入的接口类型不是primitive.A类型,它将尝试使用cast.ToStringSliceE函数将输入转换为字符串切片。如果转换失败,它将返回一个空的字符串切片。 -
MongoSlice2StringSlice(i interface{}) ([]string, error): 此函数与MustMongoSlice2StringSlice功能相似,但它返回一个字符串切片和一个错误。如果输入的接口类型是primitive.A类型,它会遍历该切片并将每个元素转换为字符串,然后将这些字符串添加到新的字符串切片中并返回。如果输入的接口类型不是primitive.A类型,它将尝试使用cast.ToStringSliceE函数将输入转换为字符串切片。如果转换失败,它将返回一个空的字符串切片和一个错误。
GetSha256Hash(str string) string: 计算给定字符串的SHA-256哈希值并返回。
-
GetPage(c *gin.Context, DefaultPageSize int): 根据请求中的页码参数计算偏移量并返回。 -
ParseToken(token, secret string): 解析和校验给定的token,并返回其包含的声明和可能的错误。
package main
import (
"fmt"
"github.com/limitcool/lib"
)
func main() {
slice := []int{1, 2, 3, 4, 3}
uniqueSlice := lib.Unique(slice)
fmt.Println(uniqueSlice) // 输出: [1 2 3 4]
}