pts

package module
v0.1.19 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2023 License: MIT Imports: 20 Imported by: 3

README

pts

介绍

自用工具方法

软件架构

软件架构说明

安装教程
  1. xxxx
  2. xxxx
  3. xxxx
使用说明
  1. xxxx
  2. xxxx
  3. xxxx
参与贡献
  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request
特技
  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

Documentation

Index

Examples

Constants

View Source
const CITY_CODE_JSON = `` /* 540868-byte string literal not displayed */

Variables

View Source
var (
	AreaCodes []AreaCodeItem
)
View Source
var DeviceList = map[string][]string{
	"HUAWEI": {
		"LIO-AN00",
		"TAS-AN00",
		"TAS-AL00",
		"LYA-AL10",
		"HMA-AL00",
		"VOG-AL00",
		"ELE-AL00",
		"OXF-AN10",
		"OXF-AN00",
		"PCT-AL10",
		"YAL-AL10",
		"YAL-AL00",
		"WLZ-AN00",
		"SEA-AL10",
	},
	"XiaoMi": {
		"MI9",
	},
	"Meizu": {
		"M973Q",
	},
	"OPPO": {
		"PCLM10",
		"PCRT00",
	},
	"vivo": {
		"V1916A",
		"V1824A",
		"V1936A",
		"V1923A",
		"V1938CT",
		"V1938T",
	},
	"samsung": {
		"SM-N9760",
		"SM-N9700",
		"SM-G9750",
		"SM-G9730",
	},
	"OnePlus": {
		"HD1910",
		"HD1900",
		"GM1910",
		"GM1900",
	},
	"realme": {
		"RMX1931",
	},
	"nubia": {
		"NX627J",
		"NX629J",
	},
	"smartisan": {
		"DT1901A",
	},
}
View Source
var Devices []DeviceInfo
View Source
var Provinces []Province

Functions

func ArrChunk added in v0.1.7

func ArrChunk[V any](arr []V, sizes ...int) [][]V

ArrChunk 将一个数组分割成大小的组。如果数组不能被平均分配,那么最后一块将是剩下的元素

Example
fmt.Println(ArrChunk([]int{1, 2, 3, 4, 5, 6}))
fmt.Println(ArrChunk([]int{1, 2, 3, 4, 5, 6}, 3))
fmt.Println(ArrChunk([]int{1, 2, 3, 4, 5, 6}, 4))
Output:

[[1] [2] [3] [4] [5] [6]]
[[1 2 3] [4 5 6]]
[[1 2 3 4] [5 6]]

func ArrConcat

func ArrConcat[V any](arr []V, arrs ...[]V) []V

ArrConcat 将多个数组的元素拼接到一个数组

Example
arr := []int{1, 2, 3}
arr2 := []int{4, 5, 6}
fmt.Println(ArrConcat(arr, arr2))
Output:

[1 2 3 4 5 6]

func ArrCount added in v0.1.7

func ArrCount[V comparable](arr []V, vals ...V) int

ArrCount 返回数组指定元素的个数

Example
fmt.Println(ArrCount([]int{0, 0, 0, 1, 1, 2, 3, 4, 5}))
fmt.Println(ArrCount([]int{0, 0, 0, 1, 1, 2, 3, 4, 5}, 1))
fmt.Println(ArrCount([]float64{1.625, 2.78, 3.521, 4.789, 5.666}, 3.521))
Output:

3
2
1

func ArrEvery

func ArrEvery[V any, T []V](arr T, fn func(val V, idx int) bool) bool

ArrEvery 循环数组,并在fn()返回false时提前结束循环

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrEvery(arr, func(val int, idx int) bool {
	return val > 0
}))
fmt.Println(ArrEvery(arr, func(val int, idx int) bool {
	return val > 1
}))
Output:

true
false

func ArrFill added in v0.1.6

func ArrFill[V any, T []V](arr *T, val V) *T

ArrFill 元素填充:将数组内元素全部填充为指定值

Example
arr := []int{1, 2, 3, 4, 5}
arr2 := ArrFill(&arr, 1)
fmt.Println(arr)
ArrFill(arr2, 2)
fmt.Println(arr)
Output:

[1 1 1 1 1]
[2 2 2 2 2]

func ArrFilter

func ArrFilter[V any, T []V](arr T, fn func(val V, idx int) bool) T

ArrFilter 元素筛选,fn()返回true的元素保留

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrFilter(arr, func(val int, idx int) bool {
	return val%2 == 0
}))
Output:

[2 4]

func ArrFind

func ArrFind[V any, T []V](arr T, fn func(val V, idx int) bool) V

ArrFind 查找元素:返回fn()首次为true的元素,否则返回

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrFind(arr, func(val int, idx int) bool {
	return val%2 == 0
}))
Output:

2

func ArrFindIndex added in v0.1.6

func ArrFindIndex[V any, T []V](arr T, fn func(val V, idx int) bool) int

ArrFindIndex 查找元素:返回fn()首次为true的元素所在下标,否则返回-1

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrFindIndex(arr, func(val int, idx int) bool {
	return val%2 == 0
}))
Output:

1

func ArrFindLast added in v0.1.6

func ArrFindLast[V any, T []V](arr T, fn func(val V, idx int) bool) V

ArrFindLast 查找元素:返回fn()最后一次为true的元素,否则返回

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrFindLast(arr, func(val int, idx int) bool {
	return val%2 == 0
}))
Output:

4

func ArrFindLastIndex added in v0.1.6

func ArrFindLastIndex[V any, T []V](arr T, fn func(val V, idx int) bool) int

ArrFindLastIndex 查找元素:返回fn()最后一次为true的元素所下在标,否则返回-1

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrFindLastIndex(arr, func(val int, idx int) bool {
	return val%2 == 0
}))
Output:

3

func ArrIncludes

func ArrIncludes[V comparable, T []V](arr T, val V) bool

ArrIncludes 判断数组是否包含指定元素

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrIncludes(arr, 0))
fmt.Println(ArrIncludes(arr, 1))
Output:

false
true

func ArrIndexOf added in v0.1.6

func ArrIndexOf[V comparable, T []V](arr T, val V) int

ArrIndexOf 查找指定元素在数组中的位置下标,某不存在则返回-1

func ArrJoin

func ArrJoin[V any, T []V, R any](arr T, sep R) string

ArrJoin 将数组元素转为string,为使用sep拼接

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrJoin(arr, "x"))
Output:

1x2x3x4x5

func ArrMap

func ArrMap[V any, R any](arr []V, fn func(val V, idx int) R) []R

ArrMap 元素重构:使用fn()的返回值替换原值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrMap(arr, func(v, i int) int {
	return v * 2
}))
Output:

[2 4 6 8 10]

func ArrMean added in v0.1.7

func ArrMean[V Numeric](arr []V) float64

ArrMean 数组所有元素的平均值

Example
fmt.Println(ArrMean([]int{1, 2, 3, 4, 5}))
fmt.Println(ArrMean([]float64{1.625, 2.78, 3.521, 4.789, 5.666}))
Output:

3
3.6762

func ArrPop

func ArrPop[V any, T []V](arr *T) V

ArrPop 从数组中移除最后一个元素,并返回

- 无可移除元素时返回指定类型的空值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrPop(&arr))
fmt.Println(arr)
Output:

5
[1 2 3 4]

func ArrProduct added in v0.1.7

func ArrProduct[V Numeric](arr []V) V

ArrProduct 数组所有元素相乘的乘积

Example
fmt.Println(ArrProduct([]int{1, 2, 3, 4, 5}))
fmt.Println(ArrProduct([]float64{1.625, 2.78, 3.521, 4.789, 5.666}))
Output:

120
431.604131744695

func ArrPush added in v0.1.6

func ArrPush[V any, T []V](arr *T, vals ...V) int

ArrPush 添加一些元素到数组末尾,并返回该数组当前的元素个数

- 无可移除元素时返回指定类型的空值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrPush(&arr))
fmt.Println(arr)
fmt.Println(ArrPush(&arr, 6, 7, 8))
fmt.Println(arr)
Output:

5
[1 2 3 4 5]
8
[1 2 3 4 5 6 7 8]

func ArrReduce added in v0.1.7

func ArrReduce[V any, R any](arr []V, fn func(prev R, curr V, idx int, arr []V) R, initVal ...R) R

ArrReduce 接收一个函数作为累加器,数组中的每个值(从左到右)开始合并,最终为一个值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrReduce(arr, func(prev string, curr int, idx int, arr []int) string {
	return fmt.Sprintf(`%s,%d`, prev, curr)
}))

fmt.Println(ArrReduce(arr, func(prev string, curr int, idx int, arr []int) string {
	return fmt.Sprintf(`%s,%d`, prev, curr)
}, "start"))

fmt.Println(ArrReduce(arr, func(prev []int, curr int, idx int, arr []int) []int {
	return append(prev, curr)
}))
Output:

,1,2,3,4,5
start,1,2,3,4,5
[1 2 3 4 5]

func ArrSample added in v0.1.7

func ArrSample[V any](arr []V, count ...int) []V

ArrSample 从数组中随机返回n个元素,n强制取值范围[1,len(arr)]

Example
fmt.Println(ArrSample([]int{1}))
fmt.Println(ArrSample([]int{1, 1, 2, 2, 3, 4, 4, 5}))
fmt.Println(ArrSample([]string{"a", "A", "B", "C"}, 5))
Output:

[1]
[3]
[C A B a]

func ArrSampleOne added in v0.1.7

func ArrSampleOne[V any](arr []V) V

ArrSampleOne 从数组中随机返回1个元素

Example
fmt.Println(ArrSampleOne([]int{}))
fmt.Println(ArrSampleOne([]int{1, 2, 3}))
Output:

0
1

func ArrShift

func ArrShift[V any, T []V](arr *T) V

ArrShift 从数组中移除第一个元素,并返回

- 无可移除元素时返回指定类型的空值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrShift(&arr))
fmt.Println(arr)
Output:

1
[2 3 4 5]

func ArrShuffle added in v0.1.7

func ArrShuffle[V any](arr []V) []V

ArrShuffle 将一个数组随机打乱,返回一个新的数组

Example
fmt.Println(ArrShuffle([]int{1, 2, 3, 4, 5}))
Output:

[3 2 5 1 4]

func ArrSome

func ArrSome[V any, T []V](arr T, fn func(val V, idx int) bool) bool

ArrSome 循环数组,并在fn()返回true时提前结束循环

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrSome(arr, func(val int, idx int) bool {
	return val > 0
}))
fmt.Println(ArrSome(arr, func(val int, idx int) bool {
	return val > 5
}))
Output:

true
false

func ArrSplice

func ArrSplice[V any, T []V](arr *T, start, length int, val ...V) T

ArrSplice 从数组arr的起始位置start开始,删去length个元素,并将val拼接至最后,返回删除的元素切片

- 若start为负数,则从尾部开始算,如:-5,表示从倒数第5个元素开始

- 此方法传入的arr为指针(*T),会改变原数组

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrSplice(&arr, 2, 2, 7, 8, 9))
fmt.Println(arr)
fmt.Println(ArrSplice(&arr, -1, 2, 10, 11, 12))
fmt.Println(arr)
Output:

[3 4]
[1 2 5 7 8 9]
[9]
[1 2 5 7 8 10 11 12]

func ArrSum added in v0.1.7

func ArrSum[V Numeric](arr []V) V

ArrSum 数组所有元素求和

Example
fmt.Println(ArrSum([]int{1, 2, 3, 4, 5}))
fmt.Println(ArrSum([]float64{1.625, 2.78, 3.521, 4.789, 5.666}))
Output:

15
18.381

func ArrUnShift added in v0.1.6

func ArrUnShift[V any, T []V](arr *T, vals ...V) int

ArrUnShift 添加一些元素到数组开头,并返回该数组当前的元素个数

- 无可移除元素时返回指定类型的空值

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(ArrUnShift(&arr))
fmt.Println(arr)
fmt.Println(ArrUnShift(&arr, 0, -1))
fmt.Println(arr)
Output:

5
[1 2 3 4 5]
7
[0 -1 1 2 3 4 5]

func ArrUnion added in v0.1.7

func ArrUnion[V comparable](arr []V, arrs ...[]V) []V

ArrUnion 将多个数的值返回唯一的并集数组

Example
arr := []int{1, 2, 3}
arr2 := []int{2, 3, 4, 5, 6}
fmt.Println(ArrUnion(arr, arr2))
Output:

[1 2 3 4 5 6]

func ArrUniq added in v0.1.7

func ArrUniq[V comparable](arr []V) []V

ArrUniq 数组去重

Example
fmt.Println(ArrUniq([]int{1, 1, 2, 2, 3, 4, 4, 5}))

fmt.Println(ArrUniq([]string{"a", "A", "B", "B", "B", "C"}))

type s struct {
	A string
	B int
}

fmt.Println(ArrUniq([]s{{"x", 1}, {"X", 0}, {"X", 0}, {"x", 1}, {"x", 2}}))
Output:

[1 2 3 4 5]
[a A B C]
[{x 1} {X 0} {x 2}]

func Decode

func Decode[T comparable](val T, matches ...T) (v T)

Decode 类似oracle的decode、php8的match

- 参数为两个一组,依次往后匹配

1. 若某组的首个值与val相等,则返回该组第2个值

2. 若某组仅1个值,则直接返回该值

3. 否则返回与val相同类型的空值

Example
fmt.Println(Decode(5, 1, 10, 5, 50))
fmt.Println(Decode(5, 1, 10, 3, 30))
fmt.Println(Decode(5, 1, 10, 3, 30, 25))
fmt.Println(Decode("5", "1", "10", "2", "20"))
fmt.Println(Decode("5", "1", "10", "5", "20"))
Output:

50
0
25

20

func HmacMd5 added in v0.1.19

func HmacMd5(key, data []byte) string

HmacMd5 []byte转md5

func HmacMd5Any added in v0.1.19

func HmacMd5Any(key, data any) string

HmacMd5Any any转md5

func HmacMd5Str added in v0.1.19

func HmacMd5Str(key, data string) string

HmacMd5Str string转md5

func HmacSha256

func HmacSha256(secret, data []byte) string

HmacSha256 HmacSha256加密

Example
fmt.Println(HmacSha256([]byte("key"), []byte("abcdefg")))
Output:

4718cebf3bde5716605b6fea813757e05dc234ee47bb6c81b7559d4731949771

func HmacSha256Any

func HmacSha256Any(secret, data any) string

HmacSha256Any HmacSha256加密

Example
var s = struct {
	Name  string
	Phone string
}{
	"Teval", "15656565656",
}
fmt.Println(HmacSha256Any([]byte("key"), s))
fmt.Println(HmacSha256Any([]byte("key"), fmt.Sprintf(`%+v`, s)))
fmt.Println(fmt.Sprintf(`%+v`, s))
Output:

c764cb7f3cebe567e98bc70b8a30f9a7b6d2d36112324abee4475fbd6756ef4e
c764cb7f3cebe567e98bc70b8a30f9a7b6d2d36112324abee4475fbd6756ef4e
{Name:Teval Phone:15656565656}

func HmacSha256Str

func HmacSha256Str(secret, data string) string

HmacSha256Str HmacSha256加密

Example
fmt.Println(HmacSha256Str("key", "abcdefg"))
Output:

4718cebf3bde5716605b6fea813757e05dc234ee47bb6c81b7559d4731949771

func Http added in v0.0.15

func Http[T any](fn func() (res T, err error), httpConf ...HttpConfig) (res T, err error)

Http fn返回错误时重试,一般用于使用代理后的网络请求

httpConf.Delay 重试间隔 默认1秒

httpConf.Times 重试次数 默认5次

Example
b, err := Http(func() (res goz.ResponseBody, err error) {
	return curl.Get("http://baidu.com")
})

fmt.Println(b.GetContents(), err)
Output:

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
 <nil>

func HttpWorks added in v0.0.15

func HttpWorks(fn func() (stop bool, err error), httpConf ...HttpConfig) (err error)

HttpWorks fn返回错误时重试,一般用于对使用代理的网络请求的响应的处理,得到正确的结果后可通过stop=true提前结束

httpConf.Delay 重试间隔 默认1秒

httpConf.Times 重试次数 默认5次

Example
fmt.Println(HttpWorks(func() (stop bool, err error) {
	return false, NewErr("times")
}))
Output:

times

func IIf

func IIf[T any](condition bool, ifTrue, ifFalse T) T

IIf 三元:当条件为true时,返回ifTrue,否则返回ifFalse

Example
v1 := IIf(true, 5, 1)
fmt.Println(fmt.Sprintf(`%v %T`, v1, v1))

v2 := IIf(false, "5", "1")
fmt.Println(fmt.Sprintf(`%v %T`, v2, v2))
Output:

5 int
1 string

func JSON

func JSON(data any) string

JSON 对json数据进行格式化(带缩进)

Example
var s = struct {
	Name  string `json:"name"`
	Phone string `json:"phone"`
}{
	"Teval", "15656565656",
}
fmt.Println(JSON(s))
Output:

{
    "name": "Teval",
    "phone": "15656565656"
}

func Join

func Join[V any, T []V, R any](arr T, sep R) string

Join 将数组以指定分隔符拼接为字符串

Example
arr := []int{1, 2, 3, 4, 5}
fmt.Println(Join(arr, "x"))
Output:

1x2x3x4x5

func Log added in v0.0.14

func Log(msg ...any)

func LogBlue added in v0.0.14

func LogBlue(msg ...any)

LogBlue 输出绿色字体,多个参数以\t分隔

func LogColor added in v0.0.14

func LogColor(attr color.Attribute, msg ...any)

func LogGreen added in v0.0.14

func LogGreen(msg ...any)

LogGreen 输出绿色字体,多个参数以\t分隔

func LogRed added in v0.0.14

func LogRed(msg ...any)

LogRed 输出红色字体,多个参数以\t分隔

func Max

func Max[T Numeric | string](val T, vals ...T) T

Max 返回参数中的最大值(至少需要1个参数)

Example
fmt.Println(Max(1, 2, 3, 4, 5, 4, 3, 2, 1))
fmt.Println(Max("a", "b", "999"))
fmt.Println(Max("18", "179"))
fmt.Println(Max(1))
Output:

5
b
18
1

func Md5

func Md5(b []byte) string

Md5 []byte转md5

Example
fmt.Println(Md5([]byte("abcdefg")))
Output:

7ac66c0f148de9519b8bd264312c4d64

func Md5Any

func Md5Any(str any) string

Md5Any any转md5

Example
var s = struct {
	Name  string
	Phone string
}{
	"Teval", "15656565656",
}
fmt.Println(Md5Any(s))
fmt.Println(Md5Any(fmt.Sprintf(`%+v`, s)))
fmt.Println(fmt.Sprintf(`%+v`, s))
Output:

29e1f5c14d500cdc87d7543e07acd9de
29e1f5c14d500cdc87d7543e07acd9de
{Name:Teval Phone:15656565656}

func Md5Str

func Md5Str(str string) string

Md5Str string转md5

Example
fmt.Println(Md5Str("abcdefg"))
Output:

7ac66c0f148de9519b8bd264312c4d64

func Min

func Min[T Numeric | string](val T, vals ...T) T

Min 返回参数中的最小值(至少需要1个参数)

Example
fmt.Println(Min(1, 2, 3, 4, 5, 4, 3, 2, 1))
fmt.Println(Min("a", "b", "999"))
fmt.Println(Min("18", "179"))
fmt.Println(Min("1"))
Output:

1
999
179
1

func NewErr

func NewErr(strs ...any) error

NewErr 生成error,多个参数以:分隔

Example
err := NewErr("假装有个错误")
fmt.Println(fmt.Sprintf(`%v %T`, err, err))
Output:

假装有个错误 *errors.errorString

func Now added in v0.0.14

func Now() string

func Nvl

func Nvl[T comparable](val T, vals ...T) T

Nvl 返回参数中第1个不为空的值

- 类似oracle的nvl

Example
fmt.Println(Nvl(""))
fmt.Println(Nvl("", "a"))
fmt.Println(Nvl("", "", "b", "c"))
fmt.Println(Nvl(0, 1, 2))
fmt.Println(Nvl(5, 1, 2))
Output:


a
b
1
5

func Print added in v0.0.14

func Print(msg ...any)

Print 输出白色字体,多个参数以\t分隔

func PrintBlue

func PrintBlue(msg ...any)

PrintBlue 输出蓝色字体,多个参数以\t分隔

func PrintColor

func PrintColor(attr color.Attribute, msg ...any)

PrintColor 输出指定颜色字体,多个参数以\t分隔

Example
PrintColor(color.FgHiMagenta, "abc", "def")
fmt.Println("abc\tdef")
Output:

abc	def

func PrintGreen

func PrintGreen(msg ...any)

PrintGreen 输出绿色字体,多个参数以\t分隔

func PrintJSON

func PrintJSON(data any) (j string)

PrintJSON 对json数据进行格式化(带缩进),并打印

func PrintRed

func PrintRed(msg ...any)

PrintRed 输出红色字体,多个参数以\t分隔

Example
PrintRed("error")
Output:

func RandAreaCode added in v0.1.3

func RandAreaCode() string

func RandAreaName added in v0.1.3

func RandAreaName() string

func RandChar added in v0.1.0

func RandChar(num int) (chars string)
Example
fmt.Println(RandChar(24))
Output:

a6c0c22f130ac319bfa81f1a79de5c91

func RandDevice added in v0.0.13

func RandDevice() (brand, model string)
Example
fmt.Println(RandDevice())
Output:

HUAWEI YAL-AL00

func RandIMEI

func RandIMEI() string

RandIMEI 生成随机的手机IMEI串号

Example
fmt.Println(RandIMEI())
Output:

254376154169509

func RandInt

func RandInt(min, max int) int

RandInt 随机生成指定大小范围的整数

Example
fmt.Println(RandInt(10, 11))
Output:

10

func RandInt64 added in v0.1.15

func RandInt64(min, max int64) int64

func RandKey

func RandKey(num int) string

RandKey 生成指定长度的字符串

Example
fmt.Println(RandKey(32))
Output:

a6c0c22f130ac319bfa81f1a79de5c91

func RandLocation

func RandLocation() (lat float64, lon float64)

RandLocation 生成国内随机经纬度

Example
fmt.Println(RandLocation())
Output:

44.1285743781 100.3852417065

func RandNum

func RandNum(length int) (str string)

RandNum 随机生成指定长度的整数

Example
fmt.Println(RandNum(10))
Output:

4087577164

func RandStr

func RandStr(num int) string

RandStr 生成指定长度的字符串

Example
fmt.Println(RandStr(32))
Output:

62c7281i0gg5ejk54gcdmg3561793437

func RandomAndroidUserAgent added in v0.1.9

func RandomAndroidUserAgent() string
Example
fmt.Println(JSON(RandomAndroidDeviceInfo()))
Output:

sf

func RandomDesktopUserAgent added in v0.1.9

func RandomDesktopUserAgent() string

func RandomIphoneUserAgent added in v0.1.9

func RandomIphoneUserAgent() string

func RandomUserAgent added in v0.1.9

func RandomUserAgent() string

func Sha1 added in v0.1.8

func Sha1(b []byte) string

Sha1 Sha1加密

func Sha1Any added in v0.1.8

func Sha1Any(str any) string

Sha1Any Sha1加密

func Sha1Str added in v0.1.8

func Sha1Str(str string) string

Sha1Str Sha1加密

func Sha256

func Sha256(b []byte) string

Sha256 Sha256加密

Example
fmt.Println(Sha256([]byte("abcdefg")))
Output:

7d1a54127b222502f5b79b5fb0803061152a44f92b37e23c6527baf665d4da9a

func Sha256Any

func Sha256Any(str any) string

Sha256Any Sha256加密

Example
var s = struct {
	Name  string
	Phone string
}{
	"Teval", "15656565656",
}
fmt.Println(Sha256Any(s))
fmt.Println(Sha256Any(fmt.Sprintf(`%+v`, s)))
fmt.Println(fmt.Sprintf(`%+v`, s))
Output:

e0866e43fa7f387f59dac989699b73195e1b6b3d84e7e2ceb923c21c2b227e6b
e0866e43fa7f387f59dac989699b73195e1b6b3d84e7e2ceb923c21c2b227e6b
{Name:Teval Phone:15656565656}

func Sha256Str

func Sha256Str(str string) string

Sha256Str Sha256加密

Example
fmt.Println(Sha256Str("abcdefg"))
Output:

7d1a54127b222502f5b79b5fb0803061152a44f92b37e23c6527baf665d4da9a

func Space

func Space(n int) string

Space 返回指定数量的空格

Example
fmt.Println(fmt.Sprintf(`_%s_`, Space(2)))
fmt.Println(len(Space(2)))
Output:

_  _
2

func Str

func Str(v any) string

Str 转为string

Example
fmt.Println(fmt.Sprintf(`%v %T`, Str(nil), Str(nil)))
fmt.Println(fmt.Sprintf(`%v %T`, Str(5), Str(5)))
Output:

string
5 string

func StrToFloat32

func StrToFloat32(str string) (f32 float32)

StrToFloat32 string转float32

Example
f32 := StrToFloat32("5.2648")
fmt.Println(fmt.Sprintf(`%v %T`, f32, f32))
Output:

5.2648 float32

func StrToFloat64

func StrToFloat64(str string) (f64 float64)

StrToFloat64 string转float64

Example
f64 := StrToFloat64("5.2648")
fmt.Println(fmt.Sprintf(`%v %T`, f64, f64))
Output:

5.2648 float64

func Trim

func Trim(str string, cutset ...string) string

Trim 清除字符串首尾的指定内容

- 默认cutest "[\\s\\t\\r\\n]+"

Example
fmt.Println(len(Trim(" 	\r\n	56 66  1")))
cutset := "[\\s\\t\\r\\n1]+"
fmt.Println(Trim(" 	\r\n	56 66  1", cutset))
Output:

8
56 66

func UUID

func UUID() string

UUID 生成UUID

Example
fmt.Println(UUID())
Output:

ea0935aa-4cbb-4bf3-8075-bfd81569baae

func UniqID

func UniqID() string

UniqID 生成唯一字串

Example
fmt.Println(UniqID())
Output:

2633020db8d74ce93f930ee98bc27fd3

func XID

func XID() string

XID 生成唯一ID

Example
fmt.Println(XID())
Output:

c7282dogg5el2u4ikgvg

Types

type Area added in v0.1.17

type Area struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Pid   int    `json:"pid"`
	Code  int    `json:"code"`
	Deep  int    `json:"deep"`
	Value int    `json:"value"`
	Label string `json:"label"`
}

func RandArea added in v0.1.16

func RandArea() Area

type AreaCodeItem added in v0.1.3

type AreaCodeItem struct {
	Name string `json:"name"`
	Code string `json:"code"`
}

func RandAreaCodeItem added in v0.1.3

func RandAreaCodeItem() AreaCodeItem

type AreaDetail added in v0.1.18

type AreaDetail struct {
	ProvinceCode int    `json:"provinceCode"`
	ProvinceName string `json:"provinceName"`
	CityCode     int    `json:"cityCode"`
	CityName     string `json:"cityName"`
	AreaCode     int    `json:"areaCode"`
	AreaName     string `json:"areaName"`
}

func RandAreaDetail added in v0.1.18

func RandAreaDetail() (areaDetail AreaDetail)

type City added in v0.1.17

type City struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Pid   int    `json:"pid"`
	Code  int    `json:"code"`
	Deep  int    `json:"deep"`
	Area  []Area `json:"area"`
	Value int    `json:"value"`
	Label string `json:"label"`
}

func RandCity added in v0.1.16

func RandCity() City

type DeviceInfo added in v0.1.9

type DeviceInfo struct {
	AppName    string `json:"appName"`
	Connection struct {
		Downlink      float64 `json:"downlink"`
		EffectiveType string  `json:"effectiveType"`
		Rtt           int     `json:"rtt"`
	} `json:"connection"`
	Platform       string  `json:"platform"`
	PluginsLength  int     `json:"pluginsLength"`
	Vendor         string  `json:"vendor"`
	UserAgent      string  `json:"userAgent"`
	ViewportHeight int     `json:"viewportHeight"`
	ViewportWidth  int     `json:"viewportWidth"`
	DeviceCategory string  `json:"deviceCategory"`
	ScreenHeight   int     `json:"screenHeight"`
	ScreenWidth    int     `json:"screenWidth"`
	Weight         float64 `json:"weight"`
}

func RandomAndroidDeviceInfo added in v0.1.13

func RandomAndroidDeviceInfo() DeviceInfo

func RandomDesktopDeviceInfo added in v0.1.13

func RandomDesktopDeviceInfo() DeviceInfo

func RandomDeviceInfo added in v0.1.12

func RandomDeviceInfo() DeviceInfo

func RandomIphoneDeviceInfo added in v0.1.13

func RandomIphoneDeviceInfo() DeviceInfo

type HttpConfig added in v0.0.15

type HttpConfig struct {
	Delay time.Duration
	Times int
}

type Numeric

type Numeric interface {
	int | int8 | int16 | int32 | int64 |
		uint | uint8 | uint16 | uint32 | uint64 |
		float32 | float64
}

type Province added in v0.1.17

type Province struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Pid   int    `json:"pid"`
	Code  int    `json:"code"`
	Deep  int    `json:"deep"`
	City  []City `json:"city"`
	Value int    `json:"value"`
	Label string `json:"label"`
}

func RandProvince added in v0.1.17

func RandProvince() Province

Jump to

Keyboard shortcuts

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