Documentation ¶
Index ¶
- func CamelToLowerKebab(s string) string
- func CamelToSnake(s string) string
- func CamelToUpperKebab(s string) string
- func CutHeadIfOverflow(str string, maxLen uint64) string
- func CutTailIfOverflow(str string, maxLen uint64) string
- func For(in []string, f func(int))
- func Join(slice interface{}, sep string, f ...func(i int) string) string
- func JoinIf(slice interface{}, sep string, f func(i int) (string, bool)) string
- func JoinInt(a []int, sep string, f ...func(i int, v int) string) string
- func JoinInt32(a []int32, sep string, f ...func(i int, v int32) string) string
- func JoinInt64(a []int64, sep string, f ...func(i int, v int64) string) string
- func JoinStr(a []string, sep string, f func(i int, v string) string) string
- func KebabToCamel(s string) string
- func KebabToSnake(s string) string
- func LcFirst(s string) string
- func Map(in []string, f func(i int, s string) string) []string
- func Md5(s string) string
- func PascalToSnake(s string) string
- func PregSplitToInt(s, pattern string) ([]int, error)
- func PregSplitToInt64(s, pattern string) ([]int64, error)
- func PregSplitToInt64NoError(s, pattern string) []int64
- func PregSplitToIntNoError(s, pattern string) []int
- func Rand(length int) string
- func RandB(length int, bucket string) string
- func RandL(length int) string
- func RandLN(length int) string
- func RandU(length int) string
- func RandULN(length int) string
- func RandUN(length int) string
- func Replace(str string, replace map[string]string) string
- func Sha1(s string) string
- func SnakeToCamel(s string) string
- func SnakeToPascal(s string) string
- func SnakeToUpperKebab(s string) string
- func Split(s, sep string, ignoreEmpty bool, format ...func(string) string) []string
- func Split2(s, sep string, ignoreEmpty bool, f ...func(string) string) (a string, b string)
- func Split3(s, sep string, ignoreEmpty bool, f ...func(string) string) (a string, b string, c string)
- func SplitN(s, sep string, ignoreEmpty bool, limit int, format ...func(string) string) []string
- func SplitToInt(s, sep string, ignoreEmpty ...bool) ([]int, error)
- func SplitToInt64(s, sep string, ignoreEmpty ...bool) ([]int64, error)
- func SplitToInt64NoError(s, sep string, ignoreEmpty ...bool) []int64
- func SplitToIntNoError(s, sep string, ignoreEmpty ...bool) []int
- func ToInt32Arr(a []string) (val []int32, err error)
- func ToInt64Arr(a []string) (val []int64, err error)
- func ToIntArr(a []string) (val []int, err error)
- func UcFirst(s string) string
- func UrlDecode(s string) string
- type Builder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CamelToUpperKebab ¶
将驼峰命名法转换为首字母大写中划线分割格式(Http Header 格式)
func CutHeadIfOverflow ¶
CutHeadIfOverflow 当字符串字节长度超过maxLen时从头开始按字符集截取字符直到等于或小于 example: str := "12你好" CutHeadIfOverflow(str,6)>>> 你好 CutHeadIfOverflow(str,5)>>> 好
func CutTailIfOverflow ¶
CutTailIfOverflow 当字符串字节长度超过maxLen时从尾部开始按字符集截取字符直到等于或小于 example: str := "12你好" CutHeadIfOverflow(str,6)>>> 12你 CutHeadIfOverflow(str,4)>>> 12
func PregSplitToInt ¶
func PregSplitToInt64 ¶
func PregSplitToInt64NoError ¶
func PregSplitToIntNoError ¶
func Rand ¶
生成随机字符串(默认使用小写字母和数字)
在一般场景下,可以使用随机字符串代替 UUID(UUID 太长了):
UUID(Universally Unique Identifier)中的 Universally 就表名了他对重复率的目标:每秒产生10亿笔UUID,100年后产生一次重复的机率是50%。 实际场景中,我们只需要使 “重复机率小到可以忽略不计” 即可,即可认为其是 “事实唯一” 的。
注意:
随机函数并不保证唯一,根据随机长度不同,平均无冲突次数不同。可以根据业务场景选择适当的随机长度。 平均无冲突次数 是指:平均执行多少次 Rand 方法,会产生一次相同的随即结果。 由于随机性,平均无冲突次数 只是一个参考值,并不是绝对值。
重复机率计算:
随机字符串默认由 0-9、a-z 组成(可通过重载方法更改 Bucket) 重复机率:每一位有 36 种可能,n 位 对应 36^n 种可能,平均无冲突次数为 36^(n/2)。 6 位:平均无冲突次数为 36^3 = 46656 8 位:平均无冲突次数为 36^4 = 1679616 = 170万 10 位:平均无冲突次数为 36^5 = 60466176 = 6000万 12 位:平均无冲突次数为 36^6 = 2176782336 = 21亿 14 位:平均无冲突次数为 36^7 = 78364164096 = 780亿 16 位:平均无冲突次数为 36^8 = 2821109907456 = 2.8万亿
func RandL ¶
生成由小写字母组成的随机字符串。
注意:
随机函数并不保证唯一,请参考 Rand 方法的备注。
重复机率:每一位有 26 种可能,n 位 对应 26^n 种可能,平均无冲突次数为 26^(n/2)。
6 位:平均无冲突次数为 26^3 = 17576 8 位:平均无冲突次数为 26^4 = 456976 = 45万 10 位:平均无冲突次数为 26^5 = 11881376 = 1200万 12 位:平均无冲突次数为 26^6 = 308915776 = 3亿 14 位:平均无冲突次数为 26^7 = 8031810176 = 80亿 16 位:平均无冲突次数为 26^8 = 208827064576 = 2000亿
func RandLN ¶
生成由小写字母和数字组成的随机字符串。 重复机率:每一位有 36 种可能,n 位 对应 36^n 种可能,平均无冲突次数为 36^(n/2)。
6 位:平均无冲突次数为 36^3 = 46656 8 位:平均无冲突次数为 36^4 = 1679616 = 170万 10 位:平均无冲突次数为 36^5 = 60466176 = 6000万 12 位:平均无冲突次数为 36^6 = 2176782336 = 21亿 14 位:平均无冲突次数为 36^7 = 78364164096 = 780亿 16 位:平均无冲突次数为 36^8 = 2821109907456 = 2.8万亿
func RandU ¶
生成由大写字母组成的随机字符串。 重复机率:每一位有 26 种可能,n 位 对应 26^n 种可能,平均无冲突次数为 26^(n/2)。
6 位:平均无冲突次数为 26^3 = 17576 8 位:平均无冲突次数为 26^4 = 456976 = 45万 10 位:平均无冲突次数为 26^5 = 11881376 = 1200万 12 位:平均无冲突次数为 26^6 = 308915776 = 3亿 14 位:平均无冲突次数为 26^7 = 8031810176 = 80亿 16 位:平均无冲突次数为 26^8 = 208827064576 = 2000亿
func RandULN ¶
生成由大写字母、小写字母和数字组成的随机字符串。 重复机率:每一位有 62 种可能,n 位 对应 62^n 种可能,平均无冲突次数为 62^(n/2)。
6 位:平均无冲突次数为 62^3 = 238328 = 23万 8 位:平均无冲突次数为 62^4 = 14776336 = 1400万 10 位:平均无冲突次数为 62^5 = 916132832 = 9亿 12 位:平均无冲突次数为 62^6 = 56800235584 = 560亿 14 位:平均无冲突次数为 62^7 = 3521614606208 = 3.5万亿
func RandUN ¶
生成由大写字母和数字组成的随机字符串。 重复机率:每一位有 36 种可能,n 位 对应 36^n 种可能,平均无冲突次数为 36^(n/2)。
6 位:平均无冲突次数为 36^3 = 46656 8 位:平均无冲突次数为 36^4 = 1679616 = 170万 10 位:平均无冲突次数为 36^5 = 60466176 = 6000万 12 位:平均无冲突次数为 36^6 = 2176782336 = 21亿 14 位:平均无冲突次数为 36^7 = 78364164096 = 780亿 16 位:平均无冲突次数为 36^8 = 2821109907456 = 2.8万亿
func SnakeToUpperKebab ¶
下划线小写格式转换为首字母大写中划线分割格式(Http Header 格式)