co

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2020 License: MIT Imports: 33 Imported by: 0

README

co

GoDoc

Go common libraries (Go语言公共库)

函数列表

file.go
FileExists()        文件是否存在
FileCreateMust()    给定path创建文件,如果目录不存在就递归创建
ReaderMimeType()    获取Reader的MimeType
FileMimeType()      获取文件的MimeType
GetDirs()           获取目录所有文件夹
GetFiles()          获取目录所有文件
GetFilesSuffix()    获取指定目录及所有子目录下的所有文件,可以匹配后缀过滤
ReadLine()          按行读取文件
path.go
PathExists()        路径是否存在
PathFillSlash()     给路径补全 `/`
PathRemoveSlash()   移除路径最后的 `/`
PathFormSlash()     将path中的反斜杠'\'替换为'/'
IsDir()             判断路径是否为目录
IsFile()            判断路径是否为文件
strings.go
Str2Bytes()         将字符串转换为字节切片
Str2Int()           将字符串转换为int
Str2IntStrict()     严格将字符串转换为有符号整型
Str2Int8()          将字符串转换为int8
Str2Int16()         将字符串转换为int16
Str2Int32()         将字符串转换为int32
Str2Int64()         将字符串转换为int64
Str2UintStrict()    严格将字符串转换为无符号整型
Str2Uint()          将字符串转换为uint
Str2Uint8()         将字符串转换为uint8
Str2Uint16()        将字符串转换为uint16
Str2Uint32()        将字符串转换为uint32
Str2Uint64()        将字符串转换为uint64
Str2FloatStrict()   严格将字符串转换为浮点型
Str2Float32()       将字符串转换为float32
Str2Float64()       将字符串转换为float64
Str2Bool()          将字符串转换为布尔值
Runes2Bytes()       将[]rune转为[]byte
SplitStr()          分割字符串(该方法会过滤空字符串)
SubStr()            字符串截取
RepeatStr()         重复字符串
RepeatRune()        重复字符串 rune
Padding()           字符串填充
PadLeft()           字符串填充 - 左侧
PadRight()          字符串填充 - 右侧
bytes.go
Bytes2Str()         将字节切片转换为字符串
Byte2Float64()      字节切片转64位浮点数
Byte2Int64()        字节切片转64位整型
Byte2Hex()          字节切片转16进制字符串
Byte2HexSlice()     字节切片转16进制切片
slice.go
ContainsUint()      返回list中是否包含
ContainsInt()       返回list中是否包含
ContainsString()    返回list中是否包含
SliceIntersect()    求两个切片交集
SliceDifference()   求两个切片差集
number.go
Int2Str()           将整数转换为字符串
Float2Str()         将浮点数转换为字符串,decimal为小数位数
Bool2Str()          将布尔值转换为字符串
Bool2Int()          将布尔值转换为整型
Dec2Bin()           将十进制转换为二进制
Bin2Dec()           将二进制转换为十进制
Hex2Bin()           将十六进制字符串转换为二进制字符串
Bin2Hex()           将二进制字符串转换为十六进制字符串
Dec2Hex()           将十进制转换为十六进制
Hex2Dec()           将十六进制转换为十进制
Dec2Oct()           将十进制转换为八进制
Oct2Dec()           将八进制转换为十进制
BaseConvert()       进制转换,在任意进制之间转换数字
Ip2Long()           将 IPV4 的字符串互联网协议转换成长整型数字
Long2Ip()           将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)
ToStr()             强制将变量转换为字符串
ToBool()            强制将变量转换为布尔值
ToInt()             强制将变量转换为整型; 其中true或"true"为1
ToFloat()           强制将变量转换为浮点型;其中true或"true"为1.0
Float64ToByte()     64位浮点数转字节切片
Int64ToByte()       64位整型转字节切片
Hex2Byte()          16进制字符串转字节切片
HexSlice2Byte()     16进制切片转byte切片
map.go
MergeStringMap()    合并给定的2个map
KeyToLower()        将给定的map键名转换为小写
Keys()              获取给定map的所有键名
Values()            获取给定map的所有值
GetByPath()         给定key获取value, 支持递归获取 (eg "top" "top.sub")
md5.go
Md5()               获取字符串md5值, length指定结果长度32/16
Md5Str()            字符串生成md5摘要
sha1.go
Sha1Str()           计算字符串的sha1散列值
ShaXStr()           计算字符串的shaX散列值,x为1/256/512
value.go
IsEmpty()           检查变量是否为空
IsNil()             检查变量是否空值
IsBool()            是否布尔值
IsHex()             是否十六进制字符串
IsByte()            变量是否字节切片
IsStruct()          变量是否结构体
IsInterface()       变量是否接口
IsString()          变量是否字符串
IsBinary()          字符串是否二进制
os.go
IsWindows()         当前操作系统是否Windows
IsLinux()           当前操作系统是否Linux
IsDarwin()          当前操作系统是否Mac OS/X
IsMSys()            msys(MINGW64) env,不一定支持颜色
IsConsole()         check out is in stderr/stdout/stdin
GetCwd()            获取当前执行文件的真实目录(不受 os.Chdir 函数影响) 
exec.go
QuickExec()         快速执行cli命令
ExecCmd()           执行命令并返回输出
ShellExec()         通过shell执行exec命令
random.go
RandInt()                   随机获取 min - max 之间的数值
RandInt64()                 随机获取 min - max 之间的数值
RandIntSlice()              随机获取 min - max 之间的数值切片
RandInt64Slice()            随机获取 min - max 之间的数值切片
RandStr()                   生成随机字符串
RandBytes()                 生成随机字节切片
RandStrForBytes()           生成随机字符串
RandStrToLower()            字符串随机字符转小写
RandStrToUpper()            字符串随机字符转大写
RandStrToUpperWithIndex()   指定字符索引转大写
RandStrToUpperWithIndex()   指定字符索引转小写
mist.go 薄雾算法
MistGenerate()      生成全局唯一ID

Documentation

Index

Constants

View Source
const (
	PosLeft uint8 = iota
	PosRight
)

Position for padding string

View Source
const (
	// sniff Length, use for detect file mime type
	MimeSniffLen = 512
)

Variables

This section is empty.

Functions

func BaseConvert

func BaseConvert(number string, frombase, tobase int) (string, error)

进制转换,在任意进制之间转换数字 number为输入数值, frombase为原进制, tobase为结果进制

func Bin2Dec

func Bin2Dec(str string) (int64, error)

将二进制转换为十进制

func Bin2Hex

func Bin2Hex(str string) (string, error)

将二进制字符串转换为十六进制字符串

func Bool2Int

func Bool2Int(val bool) int

将布尔值转换为整型

func Bool2Str

func Bool2Str(val bool) string

将布尔值转换为字符串

func Byte2Float64

func Byte2Float64(bytes []byte) float64

字节切片转64位浮点数

func Byte2Hex

func Byte2Hex(val []byte) string

字节切片转16进制字符串

func Byte2HexSlice

func Byte2HexSlice(val []byte) []byte

字节切片转16进制切片

func Byte2Int64

func Byte2Int64(val []byte) int64

字节切片转64位整型

func Bytes2Str

func Bytes2Str(val []byte) string

将字节切片转换为字符串 零拷贝,不安全.效率是string([]byte{})的百倍以上,且转换量越大效率优势越明显

func ContainsInt

func ContainsInt(s []int, e int) bool

返回list中是否包含

func ContainsString

func ContainsString(s []string, e string) bool

返回list中是否包含

func ContainsUint

func ContainsUint(s []uint, e uint) bool

返回list中是否包含

func Dec2Bin

func Dec2Bin(number int64) string

将十进制转换为二进制

func Dec2Hex

func Dec2Hex(number int64) string

将十进制转换为十六进制

func Dec2Oct

func Dec2Oct(number int64) string

将十进制转换为八进制

func ExecCmd

func ExecCmd(binName string, args []string, workDir ...string) (string, error)

执行命令并返回输出 Usage:

ExecCmd("ls", []string{"-al"})

func FileCreateMust

func FileCreateMust(path string) (*os.File, error)

给定path创建文件,如果目录不存在就递归创建

func FileExists

func FileExists(path string) bool

文件是否存在

func FileMimeType

func FileMimeType(path string) (mime string)

获取文件mime类型. eg "image/png"

func Float2Str

func Float2Str(val interface{}, decimal int) string

将浮点数转换为字符串,decimal为小数位数

func Float64ToByte

func Float64ToByte(val float64) []byte

64位浮点数转字节切片

func GetByPath

func GetByPath(key string, mp map[string]interface{}) (val interface{}, ok bool)

给定key获取value, 支持递归获取 eg "top" "top.sub"

func GetCwd

func GetCwd() string

获取当前执行文件的真实目录 不受 os.Chdir 函数影响

func GetDirs

func GetDirs(path string) (re []string)

获取目录所有文件夹

func GetFiles

func GetFiles(path string) (re []string)

获取目录所有文件

func GetFilesSuffix

func GetFilesSuffix(dirPth, suffix string) (files []string, err error)

获取指定目录及所有子目录下的所有文件,可以匹配后缀过滤 支持 Linux/macOS 软链接

func Gettype

func Gettype(v interface{}) string

获取变量类型

func Hex2Bin

func Hex2Bin(data string) (string, error)

将十六进制字符串转换为二进制字符串

func Hex2Byte

func Hex2Byte(str string) []byte

16进制字符串转字节切片

func Hex2Dec

func Hex2Dec(str string) (int64, error)

将十六进制转换为十进制

func HexSlice2Byte

func HexSlice2Byte(val []byte) []byte

16进制切片转byte切片

func Int2Str

func Int2Str(val interface{}) string

将整数转换为字符串

func Int64ToByte

func Int64ToByte(val int64) []byte

64位整型转字节切片

func Ip2Long

func Ip2Long(ipAddress string) uint32

将 IPV4 的字符串互联网协议转换成长整型数字

func IsBinary

func IsBinary(s string) bool

字符串是否二进制

func IsBool

func IsBool(val interface{}) bool

是否布尔值

func IsByte

func IsByte(val interface{}) bool

变量是否字节切片

func IsConsole

func IsConsole(out io.Writer) bool

check out is in stderr/stdout/stdin

func IsDarwin

func IsDarwin() bool

当前操作系统是否Mac OS/X

func IsDir

func IsDir(path string) bool

判断路径是否为目录

func IsEmpty

func IsEmpty(val interface{}) bool

检查变量是否为空

func IsFile

func IsFile(path string) bool

判断路径是否为文件

func IsHex

func IsHex(str string) bool

是否十六进制字符串

func IsInterface

func IsInterface(val interface{}) bool

变量是否接口

func IsLinux

func IsLinux() bool

当前操作系统是否Linux

func IsMSys

func IsMSys() bool

msys(MINGW64) env,不一定支持颜色

func IsNil

func IsNil(val interface{}) bool

检查变量是否空值

func IsString

func IsString(val interface{}) bool

变量是否字符串

func IsStruct

func IsStruct(val interface{}) bool

变量是否结构体

func IsWindows

func IsWindows() bool

当前操作系统是否Windows

func KeyToLower

func KeyToLower(src map[string]string) map[string]string

将给定的map键名转换为小写

func Keys

func Keys(mp interface{}) (keys []string)

获取给定map的所有键

func Long2Ip

func Long2Ip(properAddress uint32) string

将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)

func Md5

func Md5(str string, length uint8) string

获取字符串md5值,length指定结果长度32/16

func Md5Str

func Md5Str(s string) string

字符串生成md5摘要

func MergeStringMap

func MergeStringMap(src, dst map[string]string, ignoreCase bool) map[string]string

合并给定的2个map ignoreCase 过滤重复的键

func MistGenerate

func MistGenerate() int64

生成全局唯一ID 薄雾算法

func Oct2Dec

func Oct2Dec(str string) (int64, error)

将八进制转换为十进制

func PadLeft

func PadLeft(s, pad string, length int) string

字符串填充 - 左侧

func PadRight

func PadRight(s, pad string, length int) string

字符串填充 - 右侧

func Padding

func Padding(s, pad string, length int, pos uint8) string

字符串填充

func PathExists

func PathExists(path string) bool

路径是否存在

func PathFillSlash

func PathFillSlash(path string) string

给路径补全`/`

func PathFormSlash

func PathFormSlash(old string) string

将path中的反斜杠'\'替换为'/'

func PathRemoveSlash

func PathRemoveSlash(path string) string

移除路径最后的`/`

func QuickExec

func QuickExec(cmdLine string, workDir ...string) (string, error)

QuickExec quick exec an simple command line Usage:

QuickExec("git status")

func RandBytes

func RandBytes(length int) []byte

生成随机字节切片

func RandInt

func RandInt(min, max int) int

随机获取 min - max 之间的数值

func RandInt64

func RandInt64(min, max int64) int64

随机获取 min - max 之间的数值

func RandInt64Slice

func RandInt64Slice(length int, min, max int64) []int64

随机获取 min - max 之间的数值切片

func RandIntSlice

func RandIntSlice(length, min, max int) []int

随机获取 min - max 之间的数值切片

func RandStr

func RandStr(length int) string

生成随机字符串

func RandStrForBytes

func RandStrForBytes(length int, payload []byte) string

生成随机字符串

func RandStrToLower

func RandStrToLower(str string, lowerSize int) string

字符串随机转小写

func RandStrToLowerWithIndex added in v1.0.2

func RandStrToLowerWithIndex(str string, indexList ...int) string

指定字符索引转小写

func RandStrToUpper

func RandStrToUpper(str string, upperSize int) string

字符串随机转大写

func RandStrToUpperWithIndex added in v1.0.2

func RandStrToUpperWithIndex(str string, indexList ...int) string

指定字符索引转大写

func ReadLine

func ReadLine(f string) ([]string, error)

按行读取文件

func ReaderMimeType

func ReaderMimeType(r io.Reader) (mime string)

获取文件mime类型 Usage:

file, err := os.Open(filepath)
if err != nil {
	return
}
mime := ReaderMimeType(file)

func RepeatRune

func RepeatRune(char rune, times int) (chars []rune)

重复字符串 rune

func RepeatStr

func RepeatStr(s string, times int) string

重复字符串

func Replace

func Replace(table map[string]string, s string) string

根据替换表执行批量替换

func Runes2Bytes

func Runes2Bytes(rs []rune) []byte

将[]rune转为[]byte.

func Sha1Str

func Sha1Str(s string) string

计算字符串的sha1散列值

func ShaXStr

func ShaXStr(str string, x uint16) string

计算字符串的 shaX 散列值 x为1/256/512

func ShellExec

func ShellExec(cmdStr string, shells ...string) (string, error)

通过shell执行exec命令 cmdStr eg. "ls -al"

func SliceDifference

func SliceDifference(slice1, slice2 []string) []string

求两个切片差集

func SliceIntersect

func SliceIntersect(slice1, slice2 []string) []string

求两个切片交集

func SplitStr

func SplitStr(s, sep string) (ss []string)

分割字符串(该方法会过滤空字符串)

func Str2Bool

func Str2Bool(val string) (res bool)

将字符串转换为布尔值. 1, t, T, TRUE, true, True 等字符串为真. 0, f, F, FALSE, false, False 等字符串为假.

func Str2Bytes

func Str2Bytes(s string) []byte

将字符串转换为字节切片. 该方法零拷贝,但不安全.它直接转换底层指针,两者指向的相同的内存,改一个另外一个也会变. 仅当临时需将长字符串转换且不长时间保存时可以使用. 转换之后若没做其他操作直接改变里面的字符,则程序会崩溃. 如 b:=String2bytes("xxx"); b[1]='d'; 程序将panic.

func Str2Float32

func Str2Float32(val string) float32

将字符串转换为float32.

func Str2Float64

func Str2Float64(val string) (res float64)

将字符串转换为float64.其中"true", "TRUE", "True"为1.0 .

func Str2FloatStrict

func Str2FloatStrict(val string, bitSize int, strict bool) float64

严格将字符串转换为浮点型. bitSize为类型位数,strict为是否严格检查.

func Str2Int

func Str2Int(val string) (res int)

将字符串转换为int.其中"true", "TRUE", "True"为1.

func Str2Int8

func Str2Int8(val string) int8

将字符串转换为int8.

func Str2Int16

func Str2Int16(val string) int16

将字符串转换为int16.

func Str2Int32

func Str2Int32(val string) int32

将字符串转换为int32.

func Str2Int64

func Str2Int64(val string) int64

将字符串转换为int64.

func Str2IntStrict

func Str2IntStrict(val string, bitSize int, strict bool) int64

严格将字符串转换为有符号整型. bitSize为类型位数,strict为是否严格检查.

func Str2Uint

func Str2Uint(val string) uint

将字符串转换为uint.

func Str2Uint8

func Str2Uint8(val string) uint8

将字符串转换为uint8.

func Str2Uint16

func Str2Uint16(val string) uint16

将字符串转换为uint16.

func Str2Uint32

func Str2Uint32(val string) uint32

将字符串转换为uint32.

func Str2Uint64

func Str2Uint64(val string) uint64

将字符串转换为uint64.

func Str2UintStrict

func Str2UintStrict(val string, bitSize int, strict bool) uint64

严格将字符串转换为无符号整型,bitSize为类型位数,strict为是否严格检查

func SubStr

func SubStr(s string, pos, length int) string

字符串截取

func ToBool

func ToBool(val interface{}) bool

强制将变量转换为布尔值

func ToFloat

func ToFloat(val interface{}) (res float64)

强制将变量转换为浮点型;其中true或"true"为1.0

func ToInt

func ToInt(val interface{}) int

强制将变量转换为整型;其中true或"true"为1

func ToStr

func ToStr(val interface{}) string

强制将变量转换为字符串

func Values

func Values(mp interface{}) (values []interface{})

获取给定map的所有值

Types

type Mist

type Mist struct {
	sync.Mutex // 互斥锁
	// contains filtered or unexported fields
}

* * 薄雾算法 * https://github.com/asyncins/mist * * 1 2 48 56 64 * +------+-----------------------------------------------------+----------+----------+ * retain | increas | salt | sequence | * +------+-----------------------------------------------------+----------+----------+ * 0 | 0000000000 0000000000 0000000000 0000000000 0000000 | 00000000 | 00000000 | * +------+-----------------------------------------------------+------------+--------+ * * 0. 最高位,占 1 位,保持为 0,使得值永远为正数; * 1. 自增数,占 47 位,自增数在高位能保证结果值呈递增态势,遂低位可以为所欲为; * 2. 随机因子一,占 8 位,上限数值 255,使结果值不可预测; * 3. 随机因子二,占 8 位,上限数值 255,使结果值不可预测; * * 编号上限为百万亿级,上限值计算为 140737488355327 即 int64(1 << 47 - 1),假设每天取值 10 亿,能使用 385+ 年

func NewMist

func NewMist() *Mist

初始化 Mist 结构体

func (*Mist) Generate

func (c *Mist) Generate() int64

生成唯一编号

Jump to

Keyboard shortcuts

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