syt

package module
v0.0.0-...-2211b78 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Byte = 1       // 1 Byte
	KB   = 1 << 10 // 1 KB = 1024 Bytes
	MB   = 1 << 20 // 1 MB = 1024 KB
	GB   = 1 << 30 // 1 GB = 1024 MB
	TB   = 1 << 40 // 1 TB = 1024 GB
)

文件大小单位

View Source
const (
	MailDefaultPort = "25"  // 默认端口
	MailSSLPort     = "465" // SSL端口
	MailTLSPort     = "587" // TLS端口
	MailSSLModel    = "SSL" // SSL模式
	MailTLSMode     = "TLS" // TLS模式
)

端口信息

View Source
const DateFormat = "2006-01-02"

DateFormat 日期格式

View Source
const TimeFormat = "2006-01-02 15:04:05"

TimeFormat 时间格式

View Source
const Version = "0.0.1"

Version 版本信息

Variables

View Source
var CNLoc, _ = time.LoadLocation("Asia/Shanghai")

CNLoc 中国时区

Functions

func Assemble

func Assemble(str ...string) string

Assemble 拼接字符串

func BothPad

func BothPad(s string, padStr string, totalLength int) string

BothPad 在左右两侧填充字符

func ContainsSQLInjection

func ContainsSQLInjection(input string) bool

检查字符串是否包含潜在的 SQL 注入代码

func CreateDir

func CreateDir(dir string) error

CreateDir 创建目录及其父目录,如果目录不存在则自动创建 参数: dir - 目录路径 返回值: 创建成功返回 nil,错误时返回 error

func CreateFile

func CreateFile(fullPathWithFilename string) (*os.File, error)

CreateFile 创建文件,如果文件路径不存在则自动创建 参数: fullPathWithFilename - 文件的完整路径及文件名 返回值: 成功返回文件指针 *os.File,错误时返回 nil 和 error

func CurrentDate

func CurrentDate() string

CurrentDate 当前日期

func CurrentDaysInMonth

func CurrentDaysInMonth() int

CurrentDaysInMonth 当前月份天数

func CurrentTime

func CurrentTime() string

CurrentTime 当前时间

func CurrentTimestamp

func CurrentTimestamp() int64

CurrentTimestamp 返回当前时间的时间戳(秒级)

func CurrentTimestampMilli

func CurrentTimestampMilli() int64

CurrentTimestampMilli 返回当前时间的时间戳(毫秒级)

func DateDifference

func DateDifference(d1, d2 time.Time) int

DateDifference 两日期差值(天数)

func DaysInMonth

func DaysInMonth(t time.Time) int

DaysInMonth 返回指定时间所在月份的天数

func DirExist

func DirExist(dir string) bool

DirExist 检查目录是否存在 参数: dir - 目录路径 返回值: 如果目录存在且是目录,则返回 true;否则返回 false

func Err

func Err(str ...string) error

Err 创建一个新的错误对象,包含拼接后的错误消息 参数:

  • str: 要拼接的多个字符串

返回值:

  • error: 新创建的错误对象

func FileExist

func FileExist(fullPathWithFilename string) (fs.FileInfo, bool)

FileExist 检查文件是否存在且不是目录 参数:

  • fullPathWithFilename: 文件的完整路径及文件名

返回值:

  • fs.FileInfo: 文件信息。如果文件不存在或是目录,该值无效。
  • bool: 如果文件存在且不是目录,则返回 true;否则返回 false。

func FileExtension

func FileExtension(filePath string) string

FileExtension 返回文件的扩展名

func FileMimeType

func FileMimeType(filePath string) (string, error)

FileMimeType 返回文件的 MIME 类型 参数:

  • filePath: 文件的完整路径及文件名

返回值:

  • string: 文件的 MIME 类型
  • error: 如果发生错误,则返回错误信息

func FileSize

func FileSize(filePath string) (int64, error)

FileSize 返回文件的大小,以字节为单位

func FormatTimeToString

func FormatTimeToString(t time.Time, format string) string

FormatTimeToString 格式化时间为字符串

func Generate

func Generate() *charset

Generate 字符生成器实例

func GetSubCategoryIDs

func GetSubCategoryIDs[T any](node *TreeNode[T], ids *[]int)

GetSubCategoryIDs 获取指定节点的所有子节点 ID

func IsAlphaNumeric

func IsAlphaNumeric(input string) bool

检查字符串是否只包含字母和数字

func IsInSubTreeConcurrent

func IsInSubTreeConcurrent[T any](id int, subTree []*TreeNode[T]) bool

IsInSubTreeConcurrent 使用 sync.Mutex 并发判断某个 ID 是否在子树中

func IsParent

func IsParent[T any](id int, parentId int, nodes []TreeNode[T]) bool

IsParent 并发判断 id 节点是否为 parentId 节点的子节点

func IsTimeAfter

func IsTimeAfter(t1, t2 time.Time) bool

IsTimeAfter 验证 t1 是否在 t2 之后

func IsTimeBefore

func IsTimeBefore(t1, t2 time.Time) bool

IsTimeBefore 验证 t1 是否在 t2 之前

func IsUuid

func IsUuid(uuid string) bool

检查字符串是否为有效的 UUID

func IsValidDateFormat

func IsValidDateFormat(str string) bool

IsValidDateFormat 验证字符串是否是有效的日期格式

func IsValidDomain

func IsValidDomain(domain string) bool

检查域名是否有效

func IsValidEmail

func IsValidEmail(email string) bool

检查电子邮件地址是否有效

func IsValidFilename

func IsValidFilename(filename string) bool

检查文件名是否有效

func IsValidIP

func IsValidIP(ip string) bool

检查 IP 地址是否有效(支持 IPv4 和 IPv6)

func IsValidIPv4

func IsValidIPv4(ip string) bool

检查 IPv4 地址是否有效

func IsValidIPv6

func IsValidIPv6(ip string) bool

检查 IPv6 地址是否有效

func IsValidTimeFormat

func IsValidTimeFormat(str string) bool

IsValidTimeFormat 验证字符串是否是有效的时间格式

func IsValidURL

func IsValidURL(url string) bool

检查链接是否有效

func LeftPad

func LeftPad(s string, padStr string, totalLength int) string

LeftPad 在左侧填充字符

func MergeErrors

func MergeErrors(_errs ...error) error

MergeErrors 合并多个错误信息为一个错误

func MergeSlices

func MergeSlices[T any](a, b []T) []T

合并两个切片,不去重

func MustSliceConvert

func MustSliceConvert[S any, D any](srcS []S, convert func(src S) D) []D

MustSliceConvert 将一个类型的切片转换为另一个类型的切片,忽略错误

func ParseDate

func ParseDate(str string) (time.Time, error)

ParseDate 解析中国日期

func ParseTime

func ParseTime(str string) (time.Time, error)

ParseTime 解析中国时间

func ParseTimeWithCustomFormat

func ParseTimeWithCustomFormat(str string, format string) (time.Time, error)

ParseTimeWithCustomFormat 解析自定义格式的时间字符串

func ReadJsonFromFile

func ReadJsonFromFile(src string, v interface{}) error

ReadJsonFromFile 从 JSON 文件读取数据到结构体 参数:

  • src: 源文件路径
  • v: 目标结构体的指针

返回值:

  • error: 如果读取过程中发生错误,则返回错误信息

func RightPad

func RightPad(s string, padStr string, totalLength int) string

RightPad 在右侧填充字符

func SliceAllContains

func SliceAllContains[T comparable](arr []T, vs ...T) bool

SliceAllContains 检查切片是否完全包含指定元素集合

func SliceContains

func SliceContains[T comparable](arr []T, v T) bool

SliceContains 检查切片是否包含指定元素

func SliceConvert

func SliceConvert[S any, D any](srcS []S, convert func(src S) (D, error)) ([]D, error)

SliceConvert 将一个类型的切片转换为另一个类型的切片

func SliceEqual

func SliceEqual[T comparable](a, b []T) bool

SliceEqual 检查两个切片是否相等

func SliceFilter

func SliceFilter[T any](arr []T, filter func(src T) bool) []T

SliceFilter 根据指定条件过滤切片中的元素

func SliceMeet

func SliceMeet[T1, T2 any](arr []T1, v T2, meet func(item T1, v T2) bool) bool

SliceMeet 检查切片中是否存在满足条件的元素

func SliceReplace

func SliceReplace[T any](arr []T, replace func(src T) T)

SliceReplace 用指定函数替换切片中的所有元素

func SplitStringToIntSlice

func SplitStringToIntSlice(record string) ([]int, error)

SplitStringToIntSlice 将逗号分隔的字符串拆分成整数切片

func SplitStringToUintSlice

func SplitStringToUintSlice(record string) ([]uint, error)

SplitStringToUintSlice 将逗号分隔的字符串拆分成 uint 类型的整数切片

func TimeDifference

func TimeDifference(t1, t2 time.Time) time.Duration

TimeDifference 两时间差值

func TimeToTimestamp

func TimeToTimestamp(t time.Time) int64

TimeToTimestamp 将 time.Time 转换为时间戳(秒级)

func TimeToTimestampMilli

func TimeToTimestampMilli(t time.Time) int64

TimeToTimestampMilli 将 time.Time 转换为时间戳(毫秒级)

func TimestampDifference

func TimestampDifference(ts1, ts2 int64) time.Duration

TimestampDifference 计算两个时间戳之间的时间差

func TimestampMilliToTime

func TimestampMilliToTime(ts int64) time.Time

TimestampMilliToTime 将时间戳(毫秒级)转换为 time.Time

func TimestampToTime

func TimestampToTime(ts int64) time.Time

TimestampToTime 将时间戳(秒级)转换为 time.Time

func TreeLevel

func TreeLevel[T any](id int, nodes []TreeNode[T]) int

TreeLevel 获取指定节点的层级

func UintSliceToString

func UintSliceToString(intSlice []uint) string

UintSliceToString 将整数切片转换为用逗号连接的字符串,并去重

func UniqueSlice

func UniqueSlice[T comparable](arr []T) []T

去重操作

func WriteJsonToFile

func WriteJsonToFile(dst string, data interface{}, indent string) error

WriteJsonToFile 将结构体写入 JSON 文件 参数:

  • dst: 目标文件路径
  • data: 要写入的数据, 可以是结构体或其他支持 JSON 序列化的类型
  • indent: 可选参数, 用于设置 JSON 缩进, 如果为 "", 则不缩进

返回值:

  • error: 如果写入过程中发生错误,则返回错误信息

Types

type Email

type Email struct {
	Addr       string   // SMTP服务器域名,例如 smtp.example.com
	Port       string   // SMTP服务器端口,TLS:587,SSL:465
	SecureMode string   // 安全模式,可选 "SSL" 或 "TLS"
	From       string   // 发件人邮箱地址
	Passwd     string   // 邮箱授权码,而非登录密码
	Receiver   []string // 收件人邮箱地址列表
}

Email 保存发送邮件的配置信息。

func NewEmailer

func NewEmailer(addr, from, passwd, secureMode string, receiver []string) *Email

NewEmailer 初始化并返回一个 Email 实例。 参数: - addr: SMTP服务器域名 - from: 发件人邮箱地址 - passwd: 邮箱授权码 - secureMode: 安全模式,可选 "SSL" 或 "TLS" - receiver: 收件人邮箱地址列表

func (*Email) SendEmail

func (e *Email) SendEmail(subject, body string) error

SendEmail 发送邮件。 参数: - subject: 邮件主题 - body: 邮件内容

type TreeNode

type TreeNode[T any] struct {
	ID       int            // 当前节点 ID
	PID      int            // 父节点 ID
	Name     string         // 节点名称(可以根据需要调整)
	Children []*TreeNode[T] // 子节点列表
}

TreeNode 表示一个树节点

func BuildTree

func BuildTree[T any](data []TreeNode[T], pid int) []*TreeNode[T]

BuildTree 构建树形数据结构

Jump to

Keyboard shortcuts

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