kgo

package module
v0.4.7 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2024 License: Apache-2.0 Imports: 63 Imported by: 7

README

kgo

k`s golang helper/library/utils
golang 常用函数库/工具集,仅测试支持有限的64位系统.
总共470多个通用的方法,涵盖字符串、数组、文件、时间、加密以及类型转换等操作.

文档

GoDoc Go Report Card Build Status codecov Code Size Starts Version

测试支持
  • GO版本
    • 1.16.x
    • 1.17.x
    • 1.18.x
    • 1.19.x
    • 1.20.x
    • 1.21.x
  • OS系统
    • ubuntu-latest
    • macos-latest
    • windows-latest
依赖第三方库
  • github.com/json-iterator/go
  • github.com/yusufpapurcu/wmi
安装使用

安装

go get -u github.com/kakuilan/kgo

引入

import "github.com/kakuilan/kgo"
函数接收器
  • KFile 为文件操作,如
chk := KFile.IsExist(filename)
  • KStr 为字符串操作,如
res := KStr.Trim(" hello world ")
  • KNum 为数值操作,如
res := KNum.NumberFormat(123.4567890, 3, ".", "")
  • KArr 为数组(切片/字典)操作,如
mp := map[string]string{
"a": "aa",
"b": "bb",
}
chk := KArr.InArray("bb", mp)    
  • KTime 为时间操作,如
res, err := KTime.Str2Timestamp("2019-07-11 10:11:23")
  • KConv 为类型转换操作,如
res := KConv.ToStr(false)
  • KOS 为系统和网络操作,如
res, err := KOS.LocalIP()
  • KEncr 为加密操作,如
res, err := KEncr.PasswordHash([]byte("123456"))
  • KDbug 为调试操作,如
KDbug.DumpPrint(1.2)

具体函数请查看godoc,更多示例请参考*_test.go文件.

测试
#使用go mod
go mod tidy
go mod vendor

#单元测试
go test -race

#压测
time go test -bench=. -run=none
time go test -v -bench=. -cpu=4 -benchtime="10s" -timeout="15s" -benchmem

#代码覆盖率
go test -cover #概览

go test -coverprofile=coverage.out #生成统计信息
go test -v -covermode=count -coverprofile=coverage.out
go tool cover -func=coverage.out #查看统计信息
go tool cover -html=coverage.out #将统计信息转换为html

#性能分析
time go test -timeout 30m -bench=. -benchmem -memprofile memprofile.out -cpuprofile profile.out
go tool pprof profile.out
go tool pprof -http=192.168.1.2:8081 /usr/bin/dot profile.out
更新日志

详见[Changelog]

鸣谢

感谢JetBrains的赞助.
JetBrains

Documentation

Index

Constants

View Source
const (
	// Version 版本号
	Version = "0.4.7"

	// KDelimiter 本库自定义分隔符
	KDelimiter = "$@#KSYSK#@$"

	Unknown = "Unknown"

	//UINT_MAX 无符号整型uint最大值
	UINT_MAX = ^uint(0)

	//UINT8_MAX 无符号整型uint8最大值, 255
	UINT8_MAX = ^uint8(0)

	//UINT16_MAX 无符号整型uint16最大值, 65535
	UINT16_MAX = ^uint16(0)

	//UINT32_MAX 无符号整型uint32最大值, 4294967295
	UINT32_MAX = ^uint32(0)

	//UINT64_MAX 无符号整型uint64最大值, 18446744073709551615
	UINT64_MAX = ^uint64(0)

	//INT_MAX 有符号整型int最大值
	INT_MAX = int(^uint(0) >> 1)
	//INT_MIN 有符号整型int最小值
	INT_MIN = ^INT_MAX

	//INT32_MAX 有符号整型int32最大值, 2147483647
	INT32_MAX = int32(^uint32(0) >> 1)
	//INT32_MIN 有符号整型int32最小值, -2147483648
	INT32_MIN = ^INT32_MAX

	//INT64_MAX 有符号整型int64最大值, 9223372036854775807
	INT64_MAX = int64(^uint64(0) >> 1)
	//INT64_MIN 有符号整型int64最小值, -9223372036854775808
	INT64_MIN = ^INT64_MAX

	// FILE_COVER_ALLOW 文件覆盖,允许
	FILE_COVER_ALLOW LkkFileCover = 1
	// FILE_COVER_IGNORE 文件覆盖,忽略
	FILE_COVER_IGNORE LkkFileCover = 0
	// FILE_COVER_DENY 文件覆盖,禁止
	FILE_COVER_DENY LkkFileCover = -1

	// FILE_TYPE_ANY 文件类型-任意
	FILE_TYPE_ANY LkkFileType = 0
	// FILE_TYPE_LINK 文件类型-链接文件
	FILE_TYPE_LINK LkkFileType = 1
	// FILE_TYPE_REGULAR 文件类型-常规文件(不包括链接)
	FILE_TYPE_REGULAR LkkFileType = 2
	// FILE_TYPE_COMMON 文件类型-普通文件(包括常规和链接)
	FILE_TYPE_COMMON LkkFileType = 3

	// FILE_TREE_ALL 文件树,查找所有(包括目录和文件)
	FILE_TREE_ALL LkkFileTree = 3
	// FILE_TREE_DIR 文件树,仅查找目录
	FILE_TREE_DIR LkkFileTree = 2
	// FILE_TREE_FILE 文件树,仅查找文件
	FILE_TREE_FILE LkkFileTree = 1

	// RAND_STRING_ALPHA 随机字符串类型,字母
	RAND_STRING_ALPHA LkkRandString = 0
	// RAND_STRING_NUMERIC 随机字符串类型,数值
	RAND_STRING_NUMERIC LkkRandString = 1
	// RAND_STRING_ALPHANUM 随机字符串类型,字母+数值
	RAND_STRING_ALPHANUM LkkRandString = 2
	// RAND_STRING_SPECIAL 随机字符串类型,字母+数值+特殊字符
	RAND_STRING_SPECIAL LkkRandString = 3
	// RAND_STRING_CHINESE 随机字符串类型,仅中文
	RAND_STRING_CHINESE LkkRandString = 4

	// CASE_NONE 忽略大小写
	CASE_NONE LkkCaseSwitch = 0
	// CASE_LOWER 检查小写
	CASE_LOWER LkkCaseSwitch = 1
	// CASE_UPPER 检查大写
	CASE_UPPER LkkCaseSwitch = 2

	// PAD_LEFT 左侧填充
	PAD_LEFT LkkPadType = 0
	// PAD_RIGHT 右侧填充
	PAD_RIGHT LkkPadType = 1
	// PAD_BOTH 两侧填充
	PAD_BOTH LkkPadType = 2

	// PKCS_NONE 不进行填充
	PKCS_NONE LkkPKCSType = -1
	// PKCS_ZERO PKCS 0值填充
	PKCS_ZERO LkkPKCSType = 0
	// PKCS_SEVEN 即PKCS7
	PKCS_SEVEN LkkPKCSType = 7

	// COMPARE_ONLY_VALUE 仅比较值
	COMPARE_ONLY_VALUE LkkArrCompareType = 0
	// COMPARE_ONLY_KEY 仅比较键
	COMPARE_ONLY_KEY LkkArrCompareType = 1
	// COMPARE_BOTH_KEYVALUE 同时比较键和值
	COMPARE_BOTH_KEYVALUE LkkArrCompareType = 2

	//默认浮点数精确小数位数
	FLOAT_DECIMAL uint8 = 8

	//AuthCode 动态密钥长度,须<32
	DYNAMIC_KEY_LEN = 8

	//检查连接超时的时间
	CHECK_CONNECT_TIMEOUT = time.Second * 5

	// 正则模式-全中文
	PATTERN_CHINESE_ALL = "^[\u4e00-\u9fa5]+$"

	// 正则模式-中文名称
	PATTERN_CHINESE_NAME = "^[\u4e00-\u9fa5][.•·\u4e00-\u9fa5]{0,30}[\u4e00-\u9fa5]$"

	// 正则模式-多字节字符
	PATTERN_MULTIBYTE = "[^\x00-\x7F]"

	// 正则模式-ASCII字符
	PATTERN_ASCII = "^[\x00-\x7F]+$"

	// 正则模式-全角字符
	PATTERN_FULLWIDTH = "[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"

	// 正则模式-半角字符
	PATTERN_HALFWIDTH = "[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"

	// 正则模式-词语,不以下划线开头的中文、英文、数字、下划线
	PATTERN_WORD = "^[a-zA-Z0-9\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]+$"

	// 正则模式-浮点数
	PATTERN_FLOAT = `^([+-]?\d+)(\.\d+)$`

	// 正则模式-邮箱
	PATTERN_EMAIL = "" /* 133-byte string literal not displayed */

	// 正则模式-用户名-英文
	PATTERN_USERNAMEEN = `^[a-zA-Z0-9_.]+$`

	// 正则模式-大陆手机号
	PATTERN_MOBILECN = `^1[3-9]\d{9}$`

	// 正则模式-固定电话
	PATTERN_TEL_FIX = `^(010|02\d{1}|0[3-9]\d{2})-\d{7,9}(-\d+)?$`

	// 正则模式-400或800
	PATTERN_TEL_4800 = `^[48]00\d?(-?\d{3,4}){2}$`

	// 正则模式-座机号(固定电话或400或800)
	PATTERN_TELEPHONE = `(` + PATTERN_TEL_FIX + `)|(` + PATTERN_TEL_4800 + `)`

	// 正则模式-电话(手机或固话)
	PATTERN_PHONE = `(` + PATTERN_MOBILECN + `)|(` + PATTERN_TEL_FIX + `)`

	// 正则模式-日期时间
	PATTERN_DATETIME = `^[0-9]{4}(|\-[0-9]{2}(|\-[0-9]{2}(|\s+[0-9]{2}(|:[0-9]{2}(|:[0-9]{2})))))$`

	// 正则模式-身份证号码,18位或15位
	PATTERN_CREDIT_NO = `` /* 158-byte string literal not displayed */

	// 正则模式-小写英文
	PATTERN_ALPHA_LOWER = `^[a-z]+$`

	// 正则模式-大写英文
	PATTERN_ALPHA_UPPER = `^[A-Z]+$`

	// 正则模式-字母或数字
	PATTERN_ALPHA_NUMERIC = `^[a-zA-Z0-9]+$`

	// 正则模式-十六进制颜色
	PATTERN_HEXCOLOR = `^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$`

	// 正则模式-RGB颜色
	PATTERN_RGBCOLOR = "" /* 157-byte string literal not displayed */

	// 正则模式-全空白字符
	PATTERN_WHITESPACE_ALL = "^[[:space:]]+$"

	// 正则模式-带空白字符
	PATTERN_WHITESPACE_HAS = ".*[[:space:]]"

	// 正则模式-连续空白符
	PATTERN_WHITESPACE_DUPLICATE = `[[:space:]]{2,}|[\s\p{Zs}]{2,}`

	// 正则模式-base64字符串
	PATTERN_BASE64 = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$"

	// 正则模式-base64编码图片
	PATTERN_BASE64_IMAGE = `^data:\s*(image|img)\/(\w+);base64`

	// 正则模式-html标签
	PATTERN_HTML_TAGS = `<(.|\n)*?>`

	// 正则模式-DNS名称
	PATTERN_DNSNAME = `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$`

	// 正则模式-MD5
	PATTERN_MD5 = `^(?i)([0-9a-h]{32})$`

	// 正则模式-SHA1
	PATTERN_SHA1 = `^(?i)([0-9a-h]{40})$`

	// 正则模式-SHA256
	PATTERN_SHA256 = `^(?i)([0-9a-h]{64})$`

	// 正则模式-SHA512
	PATTERN_SHA512 = `^(?i)([0-9a-h]{128})$`

	//正则模式-等式 x = y
	PATTERN_EQUATION = `['"]?([\w\-]+)['"]?[\s]*=[\s]*['"]?(.*)['"]?`

	// 正则模式-emoji表情符
	PATTERN_EMOJI = `` /* 21966-byte string literal not displayed */
)

Variables

View Source
var (
	// KFile utilities
	KFile LkkFile

	// KStr utilities
	KStr LkkString

	// KNum utilities
	KNum LkkNumber

	// KArr utilities
	KArr LkkArray

	// KTime utilities
	KTime LkkTime

	// KConv utilities
	KConv LkkConvert

	// KOS utilities
	KOS LkkOS

	// KEncr utilities
	KEncr LkkEncrypt

	// KDbug utilities
	KDbug LkkDebug

	// 已编译的正则
	RegFormatDir             = regexp.MustCompile(`[\/]{2,}`) //连续的"//"或"\\"或"\/"或"/\"
	RegChineseAll            = regexp.MustCompile(PATTERN_CHINESE_ALL)
	RegChineseName           = regexp.MustCompile(PATTERN_CHINESE_NAME)
	RegWord                  = regexp.MustCompile(PATTERN_WORD)
	RegMultiByte             = regexp.MustCompile(PATTERN_MULTIBYTE)
	RegFullWidth             = regexp.MustCompile(PATTERN_FULLWIDTH)
	RegHalfWidth             = regexp.MustCompile(PATTERN_HALFWIDTH)
	RegFloat                 = regexp.MustCompile(PATTERN_FLOAT)
	RegEmail                 = regexp.MustCompile(PATTERN_EMAIL)
	RegMobilecn              = regexp.MustCompile(PATTERN_MOBILECN)
	RegTelephone             = regexp.MustCompile(PATTERN_TELEPHONE)
	RegPhone                 = regexp.MustCompile(PATTERN_PHONE)
	RegDatetime              = regexp.MustCompile(PATTERN_DATETIME)
	RegCreditno              = regexp.MustCompile(PATTERN_CREDIT_NO)
	RegAlphaLower            = regexp.MustCompile(PATTERN_ALPHA_LOWER)
	RegAlphaUpper            = regexp.MustCompile(PATTERN_ALPHA_UPPER)
	RegAlphaNumeric          = regexp.MustCompile(PATTERN_ALPHA_NUMERIC)
	RegHexcolor              = regexp.MustCompile(PATTERN_HEXCOLOR)
	RegRgbcolor              = regexp.MustCompile(PATTERN_RGBCOLOR)
	RegWhitespace            = regexp.MustCompile(`\s`)
	RegWhitespaceAll         = regexp.MustCompile(PATTERN_WHITESPACE_ALL)
	RegWhitespaceHas         = regexp.MustCompile(PATTERN_WHITESPACE_HAS)
	RegWhitespaceDuplicate   = regexp.MustCompile(PATTERN_WHITESPACE_DUPLICATE)
	RegBase64                = regexp.MustCompile(PATTERN_BASE64)
	RegBase64Image           = regexp.MustCompile(PATTERN_BASE64_IMAGE)
	RegHtmlTag               = regexp.MustCompile(PATTERN_HTML_TAGS)
	RegDNSname               = regexp.MustCompile(PATTERN_DNSNAME)
	RegUrlBackslashDuplicate = regexp.MustCompile(`([^:])[\/]{2,}`) //url中连续的"//"或"\\"或"\/"或"/\"
	RegMd5                   = regexp.MustCompile(PATTERN_MD5)
	RegSha1                  = regexp.MustCompile(PATTERN_SHA1)
	RegSha256                = regexp.MustCompile(PATTERN_SHA256)
	RegSha512                = regexp.MustCompile(PATTERN_SHA512)
	RegEmoji                 = regexp.MustCompile(PATTERN_EMOJI)
	RegUsernameen            = regexp.MustCompile(PATTERN_USERNAMEEN)
	RegEquation              = regexp.MustCompile(PATTERN_EQUATION)
	RegAscii                 = regexp.MustCompile(PATTERN_ASCII)
)

公开变量

View Source
var (

	//默认时间选项
	DefaultTimeOption = TimeOption{
		IsUTC:    false,
		Layout:   "2006-01-02 15:04:05",
		Zone:     "",
		Location: kuptime.Location(),
	}
)

私有变量

Functions

func CallFunc added in v0.0.7

func CallFunc(f interface{}, args ...interface{}) ([]interface{}, error)

CallFunc 动态调用函数.

func GetFieldValue added in v0.1.5

func GetFieldValue(arr interface{}, fieldName string) (res interface{}, err error)

GetFieldValue 获取(字典/结构体的)字段值;fieldName为字段名,大小写敏感.

func GetVariatePointerAddr added in v0.1.5

func GetVariatePointerAddr(val interface{}) int64

GetVariatePointerAddr 获取变量的指针地址.

func GetVariateType added in v0.1.5

func GetVariateType(v interface{}) string

GetVariateType 获取变量类型.

func IsPointer added in v0.1.9

func IsPointer(val interface{}, notNil bool) (res bool)

IsPointer 检查变量是否指针类型; notNil 是否检查变量非nil.

func VerifyFunc added in v0.1.5

func VerifyFunc(f interface{}, args ...interface{}) (vf reflect.Value, vargs []reflect.Value, err error)

VerifyFunc 验证是否函数,并且参数个数、类型是否正确. 返回有效的函数、有效的参数.

Types

type BiosInfo added in v0.0.7

type BiosInfo struct {
	Vendor  string `json:"vendor"`
	Version string `json:"version"`
	Date    string `json:"date"`
}

BiosInfo BIOS信息

type BoardInfo added in v0.0.7

type BoardInfo struct {
	Name     string `json:"name"`
	Vendor   string `json:"vendor"`
	Version  string `json:"version"`
	Serial   string `json:"serial"`
	AssetTag string `json:"assettag"`
}

BoardInfo Board信息

type CallBack

type CallBack func()

CallBack 回调执行函数,无参数且无返回值

type CpuInfo added in v0.0.7

type CpuInfo struct {
	Vendor  string `json:"vendor"`
	Model   string `json:"model"`
	Speed   string `json:"speed"`   // CPU clock rate in MHz
	Cache   uint   `json:"cache"`   // CPU cache size in KB
	Cpus    uint   `json:"cpus"`    // number of physical CPUs
	Cores   uint   `json:"cores"`   // number of physical CPU cores
	Threads uint   `json:"threads"` // number of logical (HT) CPU cores
}

CpuInfo CPU信息

type FileFilter

type FileFilter func(string) bool

FileFilter 文件过滤函数

type LkkArrCompareType added in v0.1.4

type LkkArrCompareType uint8

LkkArrCompareType 枚举类型,数组比较方式

type LkkArray

type LkkArray struct {
}

LkkArray is the receiver of array utilities

func (*LkkArray) ArrayChunk

func (ka *LkkArray) ArrayChunk(arr interface{}, size int) [][]interface{}

ArrayChunk 将一个数组/切片分割成多个,size为每个子数组的长度.

func (*LkkArray) ArrayColumn

func (ka *LkkArray) ArrayColumn(arr interface{}, columnKey string) []interface{}

ArrayColumn 返回数组(切片/字典/结构体)中元素指定的一列. arr的元素必须是字典; columnKey为元素的字段名; 该方法效率较低.

func (*LkkArray) ArrayDiff

func (ka *LkkArray) ArrayDiff(arr1, arr2 interface{}, compareType LkkArrCompareType) map[interface{}]interface{}

ArrayDiff 计算数组(数组/切片/字典)的差集,返回在 arr1 中但不在 arr2 里的元素,注意会同时返回键. compareType为两个数组的比较方式,枚举类型,有: COMPARE_ONLY_VALUE 根据元素值比较, 返回在 arr1 中但是不在arr2 里的值; COMPARE_ONLY_KEY 根据 arr1 中的键名和 arr2 进行比较,返回不同键名的项; COMPARE_BOTH_KEYVALUE 同时比较键和值.

func (*LkkArray) ArrayFlip

func (ka *LkkArray) ArrayFlip(arr interface{}) map[interface{}]interface{}

ArrayFlip 交换数组(切片/字典)中的键和值.

func (*LkkArray) ArrayIntersect added in v0.1.4

func (ka *LkkArray) ArrayIntersect(arr1, arr2 interface{}, compareType LkkArrCompareType) map[interface{}]interface{}

ArrayIntersect 计算数组(数组/切片/字典)的交集,返回在 arr1 中且在 arr2 里的元素,注意会同时返回键. compareType为两个数组的比较方式,枚举类型,有: COMPARE_ONLY_VALUE 根据元素值比较, 返回在 arr1 中且在arr2 里的值; COMPARE_ONLY_KEY 根据 arr1 中的键名和 arr2 进行比较,返回相同键名的项; COMPARE_BOTH_KEYVALUE 同时比较键和值.

func (*LkkArray) ArrayKeyExists

func (ka *LkkArray) ArrayKeyExists(key interface{}, arr interface{}) bool

ArrayKeyExists 检查arr(数组/切片/字典/结构体)里是否有key指定的键名(索引/字段).

func (*LkkArray) ArrayKeys

func (ka *LkkArray) ArrayKeys(arr interface{}) []interface{}

ArrayKeys 返回数组(切片/字典/结构体)中所有的键名;如果是结构体,只返回公开的字段.

func (*LkkArray) ArrayPad

func (ka *LkkArray) ArrayPad(arr interface{}, size int, item interface{}) []interface{}

ArrayPad 以指定长度将一个值item填充进arr数组/切片. 若 size 为正,则填补到数组的右侧,如果为负则从左侧开始填补; 若 size 的绝对值小于或等于 arr 数组的长度则没有任何填补.

func (*LkkArray) ArrayRand

func (ka *LkkArray) ArrayRand(arr interface{}, num int) []interface{}

ArrayRand 从数组(切片/字典)中随机取出num个元素.

func (*LkkArray) ArrayReverse

func (ka *LkkArray) ArrayReverse(arr interface{}) []interface{}

ArrayReverse 返回单元顺序相反的数组(仅限数组和切片).

func (*LkkArray) ArraySearchItem

func (ka *LkkArray) ArraySearchItem(arr interface{}, condition map[string]interface{}) (res interface{})

ArraySearchItem 从数组(切片/字典)中搜索对应元素(单个). arr为要查找的数组,元素必须为字典/结构体;condition为条件字典.

func (*LkkArray) ArraySearchMutil added in v0.0.7

func (ka *LkkArray) ArraySearchMutil(arr interface{}, condition map[string]interface{}) (res []interface{})

ArraySearchMutil 从数组(切片/字典)中搜索对应元素(多个). arr为要查找的数组,元素必须为字典/结构体;condition为条件字典.

func (*LkkArray) ArrayShuffle added in v0.1.5

func (ka *LkkArray) ArrayShuffle(arr interface{}) []interface{}

ArrayShuffle 打乱数组/切片排序.

func (*LkkArray) ArrayUnique

func (ka *LkkArray) ArrayUnique(arr interface{}) map[interface{}]interface{}

ArrayUnique 移除数组(切片/字典)中重复的值,返回字典,保留键名.

func (*LkkArray) ArrayValues

func (ka *LkkArray) ArrayValues(arr interface{}, filterZero bool) []interface{}

ArrayValues 返回arr(数组/切片/字典/结构体)中所有的值;如果是结构体,只返回公开字段的值. filterZero 是否过滤零值元素(nil,false,0,"",[]),true时排除零值元素,false时保留零值元素.

func (*LkkArray) CopyStruct added in v0.2.8

func (ka *LkkArray) CopyStruct(dest interface{}, resources ...interface{}) (err error)

CopyStruct 将resources的值拷贝到dest目标结构体; 要求dest必须是结构体指针,resources为多个源结构体;若resources存在多个相同字段的元素,结果以最后的为准; 只简单核对字段名,不做深层校验处理,需开发者自行检查dest和resources字段类型符合才可操作.

func (*LkkArray) CutSlice added in v0.1.5

func (ka *LkkArray) CutSlice(arr interface{}, offset, size int) []interface{}

CutSlice 裁剪切片,返回根据offset(起始位置)和size(数量)参数所指定的arr(数组/切片)中的一段切片.

func (*LkkArray) DeleteSliceItems added in v0.1.4

func (ka *LkkArray) DeleteSliceItems(val interface{}, ids ...int) (res []interface{}, del int)

DeleteSliceItems 删除数组/切片的元素,返回一个新切片. ids为多个元素的索引(0~len(val)-1); del为删除元素的数量.

func (*LkkArray) Implode

func (ka *LkkArray) Implode(delimiter string, arr interface{}) string

Implode 用delimiter将数组(数组/切片/字典/结构体)的值连接为一个字符串.

func (*LkkArray) InArray

func (ka *LkkArray) InArray(needle interface{}, haystack interface{}) bool

InArray 元素needle是否在数组haystack(切片/字典)内.

func (*LkkArray) InInt64Slice added in v0.0.7

func (ka *LkkArray) InInt64Slice(i int64, list []int64) bool

InInt64Slice 是否在64位整型切片内.

func (*LkkArray) InIntSlice added in v0.0.7

func (ka *LkkArray) InIntSlice(i int, list []int) bool

InIntSlice 是否在整型切片内.

func (*LkkArray) InStringSlice added in v0.0.7

func (ka *LkkArray) InStringSlice(str string, list []string) bool

InStringSlice 是否在字符串切片内.

func (*LkkArray) IsArray added in v0.1.5

func (ka *LkkArray) IsArray(val interface{}) bool

IsArray 变量是否数组.

func (*LkkArray) IsArrayOrSlice

func (ka *LkkArray) IsArrayOrSlice(val interface{}) bool

IsArrayOrSlice 变量是否数组或切片.

func (*LkkArray) IsEqualArray added in v0.0.7

func (ka *LkkArray) IsEqualArray(arr1, arr2 interface{}) bool

IsEqualArray 两个数组/切片是否相同(不管元素顺序),且不会检查元素类型; arr1, arr2 是要比较的数组/切片.

func (*LkkArray) IsEqualMap added in v0.1.5

func (ka *LkkArray) IsEqualMap(arr1, arr2 interface{}) bool

IsEqualMap 两个字典是否相同(不管键顺序),且不会严格检查元素类型; arr1, arr2 是要比较的字典.

func (*LkkArray) IsMap

func (ka *LkkArray) IsMap(val interface{}) bool

IsMap 变量是否字典.

func (*LkkArray) IsSlice added in v0.1.5

func (ka *LkkArray) IsSlice(val interface{}) bool

IsSlice 变量是否切片.

func (*LkkArray) IsStruct added in v0.1.5

func (ka *LkkArray) IsStruct(val interface{}) bool

IsStruct 变量是否结构体.

func (*LkkArray) JoinInts added in v0.0.7

func (ka *LkkArray) JoinInts(delimiter string, ints []int) (res string)

JoinInts 使用分隔符delimiter连接整数切片.

func (*LkkArray) JoinStrings added in v0.0.7

func (ka *LkkArray) JoinStrings(delimiter string, strs []string) (res string)

JoinStrings 使用分隔符delimiter连接字符串切片strs.效率比Implode高.

func (*LkkArray) Length added in v0.1.5

func (ka *LkkArray) Length(val interface{}) int

Length 获取数组/切片的长度;结果为-1表示变量不是数组或切片.

func (*LkkArray) MergeMap added in v0.0.7

func (ka *LkkArray) MergeMap(ss ...interface{}) map[interface{}]interface{}

MergeMap 合并字典,相同的键名时,后面的值将覆盖前一个值. ss是元素为字典的切片.

func (*LkkArray) MergeSlice added in v0.0.7

func (ka *LkkArray) MergeSlice(filterZero bool, ss ...interface{}) []interface{}

MergeSlice 合并一个或多个数组/切片. filterZero 是否过滤零值元素(nil,false,0,”,[]),true时排除零值元素,false时保留零值元素. ss是元素为数组/切片的切片.

func (*LkkArray) NewStrMapItf added in v0.1.5

func (ka *LkkArray) NewStrMapItf() map[string]interface{}

NewStrMapItf 新建[字符-接口]字典.

func (*LkkArray) NewStrMapStr added in v0.1.5

func (ka *LkkArray) NewStrMapStr() map[string]string

NewStrMapStr 新建[字符-字符]字典.

func (*LkkArray) SliceFill added in v0.1.5

func (ka *LkkArray) SliceFill(val interface{}, num int) []interface{}

SliceFill 用给定的值val填充切片,num为插入元素的数量.

func (*LkkArray) SlicePop added in v0.1.5

func (ka *LkkArray) SlicePop(s *[]interface{}) interface{}

SlicePop 弹出切片最后一个元素(出栈),并返回该元素.

func (*LkkArray) SlicePush added in v0.1.5

func (ka *LkkArray) SlicePush(s *[]interface{}, elements ...interface{}) int

SlicePush 将一个或多个元素压入切片的末尾(入栈),返回处理之后切片的元素个数.

func (*LkkArray) SliceShift added in v0.1.5

func (ka *LkkArray) SliceShift(s *[]interface{}) interface{}

SliceShift 将切片开头的元素移出,并返回该元素.

func (*LkkArray) SliceUnshift added in v0.1.5

func (ka *LkkArray) SliceUnshift(s *[]interface{}, elements ...interface{}) int

SliceUnshift 在切片开头插入一个或多个元素,返回处理之后切片的元素个数.

func (*LkkArray) Unique64Ints added in v0.0.7

func (ka *LkkArray) Unique64Ints(ints []int64) (res []int64)

Unique64Ints 移除64位整数切片中的重复值.

func (*LkkArray) UniqueInts added in v0.0.7

func (ka *LkkArray) UniqueInts(ints []int) (res []int)

UniqueInts 移除整数切片中的重复值.

func (*LkkArray) UniqueStrings added in v0.0.7

func (ka *LkkArray) UniqueStrings(strs []string) (res []string)

UniqueStrings 移除字符串切片中的重复值.

type LkkCaseSwitch

type LkkCaseSwitch uint8

LkkCaseSwitch 枚举类型,大小写开关

type LkkConvert

type LkkConvert struct {
}

LkkConvert is the receiver of convert utilities

func (*LkkConvert) BaseConvert

func (kc *LkkConvert) BaseConvert(num string, frombase, tobase int) (string, error)

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

func (*LkkConvert) Bin2Dec added in v0.0.7

func (kc *LkkConvert) Bin2Dec(str string) (int64, error)

Bin2Dec 将二进制字符串转换为十进制.

func (*LkkConvert) Bin2Hex added in v0.0.7

func (kc *LkkConvert) Bin2Hex(str string) (string, error)

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

func (*LkkConvert) Bool2Int

func (kc *LkkConvert) Bool2Int(val bool) int

Bool2Int 将布尔值转换为整型.

func (*LkkConvert) Bool2Str

func (kc *LkkConvert) Bool2Str(val bool) string

Bool2Str 将布尔值转换为字符串.

func (*LkkConvert) Byte2Float64 added in v0.0.7

func (kc *LkkConvert) Byte2Float64(bytes []byte) float64

Byte2Float64 字节切片转64位浮点数.

func (*LkkConvert) Byte2Hex

func (kc *LkkConvert) Byte2Hex(val []byte) string

Byte2Hex 字节切片转16进制字符串.

func (*LkkConvert) Byte2Hexs added in v0.0.7

func (kc *LkkConvert) Byte2Hexs(val []byte) []byte

Byte2Hexs 字节切片转16进制切片.

func (*LkkConvert) Byte2Int64 added in v0.0.7

func (kc *LkkConvert) Byte2Int64(val []byte) int64

Byte2Int64 字节切片转64位整型.

func (*LkkConvert) Bytes2Str added in v0.0.7

func (kc *LkkConvert) Bytes2Str(val []byte) string

Bytes2Str 将字节切片转换为字符串.

func (*LkkConvert) Bytes2StrUnsafe added in v0.1.5

func (kc *LkkConvert) Bytes2StrUnsafe(val []byte) string

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

func (*LkkConvert) Dec2Bin added in v0.0.7

func (kc *LkkConvert) Dec2Bin(num int64) string

Dec2Bin 将十进制转换为二进制字符串.

func (*LkkConvert) Dec2Hex added in v0.0.7

func (kc *LkkConvert) Dec2Hex(num int64) string

Dec2Hex 将十进制转换为十六进制.

func (*LkkConvert) Dec2Oct added in v0.0.7

func (kc *LkkConvert) Dec2Oct(num int64) string

Dec2Oct 将十进制转换为八进制.

func (*LkkConvert) Float2Str

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

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

func (*LkkConvert) Float64ToByte

func (kc *LkkConvert) Float64ToByte(val float64) []byte

Float64ToByte 64位浮点数转字节切片.

func (*LkkConvert) Hex2Bin added in v0.0.7

func (kc *LkkConvert) Hex2Bin(str string) (string, error)

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

func (*LkkConvert) Hex2Byte

func (kc *LkkConvert) Hex2Byte(str string) []byte

Hex2Byte 16进制字符串转字节切片.

func (*LkkConvert) Hex2Dec added in v0.0.7

func (kc *LkkConvert) Hex2Dec(str string) (int64, error)

Hex2Dec 将十六进制转换为十进制.

func (*LkkConvert) Hexs2Byte added in v0.0.7

func (kc *LkkConvert) Hexs2Byte(val []byte) []byte

Hexs2Byte 16进制切片转byte切片.

func (*LkkConvert) Int2Str

func (kc *LkkConvert) Int2Str(val interface{}) string

Int2Str 将整数转换为字符串.

func (*LkkConvert) Int64ToByte

func (kc *LkkConvert) Int64ToByte(val int64) []byte

Int64ToByte 64位整型转字节切片.

func (*LkkConvert) Ip2Long added in v0.0.7

func (kc *LkkConvert) Ip2Long(ipAddress string) uint32

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

func (*LkkConvert) IsBinary

func (kc *LkkConvert) IsBinary(s string) bool

IsBinary 字符串是否二进制.

func (*LkkConvert) IsBool

func (kc *LkkConvert) IsBool(val interface{}) bool

IsBool 是否布尔值.

func (*LkkConvert) IsByte

func (kc *LkkConvert) IsByte(val interface{}) bool

IsByte 变量是否字节切片.

func (*LkkConvert) IsEmpty

func (kc *LkkConvert) IsEmpty(val interface{}) bool

IsEmpty 变量是否为空.

func (*LkkConvert) IsFloat

func (kc *LkkConvert) IsFloat(val interface{}) bool

IsFloat 变量是否浮点数值.

func (*LkkConvert) IsHex

func (kc *LkkConvert) IsHex(str string) bool

IsHex 是否十六进制字符串.

func (*LkkConvert) IsInt

func (kc *LkkConvert) IsInt(val interface{}) bool

IsInt 变量是否整型数值.

func (*LkkConvert) IsInterface

func (kc *LkkConvert) IsInterface(val interface{}) bool

IsInterface 变量是否接口.

func (*LkkConvert) IsNil added in v0.0.7

func (kc *LkkConvert) IsNil(val interface{}) bool

IsNil 变量是否nil.

func (*LkkConvert) IsNumeric

func (kc *LkkConvert) IsNumeric(val interface{}) bool

IsNumeric 变量是否数值(不包含复数和科学计数法).

func (*LkkConvert) IsPort added in v0.1.5

func (kc *LkkConvert) IsPort(val interface{}) bool

IsPort 变量值是否端口号(1~65535).

func (*LkkConvert) IsString

func (kc *LkkConvert) IsString(val interface{}) bool

IsString 变量是否字符串.

func (*LkkConvert) IsStruct

func (kc *LkkConvert) IsStruct(val interface{}) bool

IsStruct 变量是否结构体.

func (*LkkConvert) Long2Ip added in v0.0.7

func (kc *LkkConvert) Long2Ip(properAddress uint32) string

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

func (*LkkConvert) Oct2Dec added in v0.0.7

func (kc *LkkConvert) Oct2Dec(str string) (int64, error)

Oct2Dec 将八进制转换为十进制.

func (*LkkConvert) Runes2Bytes added in v0.0.7

func (kc *LkkConvert) Runes2Bytes(rs []rune) []byte

Runes2Bytes 将[]rune转为[]byte.

func (*LkkConvert) Str2Bool

func (kc *LkkConvert) Str2Bool(val string) bool

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

func (*LkkConvert) Str2Bytes added in v0.0.7

func (kc *LkkConvert) Str2Bytes(val string) []byte

Str2Bytes 将字符串转换为字节切片.

func (*LkkConvert) Str2BytesUnsafe added in v0.1.5

func (kc *LkkConvert) Str2BytesUnsafe(val string) []byte

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

func (*LkkConvert) Str2Float32

func (kc *LkkConvert) Str2Float32(val string) float32

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

func (*LkkConvert) Str2Float64

func (kc *LkkConvert) Str2Float64(val string) float64

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

func (*LkkConvert) Str2Int

func (kc *LkkConvert) Str2Int(val string) int

Str2Int 将字符串转换为int.其中"true", "TRUE", "True"为1;若为浮点字符串,则取整数部分.

func (*LkkConvert) Str2Int16

func (kc *LkkConvert) Str2Int16(val string) int16

Str2Int16 将字符串转换为int16.

func (*LkkConvert) Str2Int32

func (kc *LkkConvert) Str2Int32(val string) int32

Str2Int32 将字符串转换为int32.

func (*LkkConvert) Str2Int64

func (kc *LkkConvert) Str2Int64(val string) int64

Str2Int64 将字符串转换为int64.

func (*LkkConvert) Str2Int8

func (kc *LkkConvert) Str2Int8(val string) int8

Str2Int8 将字符串转换为int8.

func (*LkkConvert) Str2Uint

func (kc *LkkConvert) Str2Uint(val string) uint

Str2Uint 将字符串转换为uint.其中"true", "TRUE", "True"为1;若为浮点字符串,则取整数部分;若为负值则取0.

func (*LkkConvert) Str2Uint16

func (kc *LkkConvert) Str2Uint16(val string) uint16

Str2Uint16 将字符串转换为uint16.

func (*LkkConvert) Str2Uint32

func (kc *LkkConvert) Str2Uint32(val string) uint32

Str2Uint32 将字符串转换为uint32.

func (*LkkConvert) Str2Uint64

func (kc *LkkConvert) Str2Uint64(val string) uint64

Str2Uint64 将字符串转换为uint64.

func (*LkkConvert) Str2Uint8

func (kc *LkkConvert) Str2Uint8(val string) uint8

Str2Uint8 将字符串转换为uint8.

func (*LkkConvert) Struct2Map added in v0.1.5

func (kc *LkkConvert) Struct2Map(obj interface{}, tagName string) (map[string]interface{}, error)

Struct2Map 结构体转为字典;tagName为要导出的标签名,可以为空,为空时将导出所有字段.

func (*LkkConvert) ToBool added in v0.0.7

func (kc *LkkConvert) ToBool(val interface{}) bool

ToBool 强制将变量转换为布尔值. 数值类型将检查值是否>0; 字符串将使用Str2Bool; 数组、切片、字典、通道类型将检查它们的长度是否>0; 指针、结构体类型为true,其他为false.

func (*LkkConvert) ToFloat

func (kc *LkkConvert) ToFloat(val interface{}) (res float64)

ToFloat 强制将变量转换为浮点型. 数值类型将转为浮点型; 字符串将使用Str2Float64; 布尔型的true为1.0,false为0; 数组、切片、字典、通道类型将取它们的长度; 指针、结构体类型为1.0,其他为0.

func (*LkkConvert) ToInt

func (kc *LkkConvert) ToInt(val interface{}) int

ToInt 强制将变量转换为整型. 数值类型将转为整型; 字符串类型将使用Str2Int; 布尔型的true为1,false为0; 数组、切片、字典、通道类型将取它们的长度; 指针、结构体类型为1,其他为0.

func (*LkkConvert) ToInterfaces added in v0.2.0

func (kc *LkkConvert) ToInterfaces(val interface{}) []interface{}

ToInterfaces 强制将变量转为接口切片;和KArr.ArrayValues相同. 其中val类型必须是数组/切片/字典/结构体.

func (*LkkConvert) ToStr

func (kc *LkkConvert) ToStr(val interface{}) string

ToStr 强制将变量转换为字符串.

type LkkDebug

type LkkDebug struct {
}

LkkDebug is the receiver of debug utilities

func (*LkkDebug) CallMethod added in v0.0.7

func (kd *LkkDebug) CallMethod(t interface{}, method string, args ...interface{}) ([]interface{}, error)

CallMethod 调用对象t的method方法. 若执行成功,则结果是该方法的返回结果; 否则返回(nil, error).

func (*LkkDebug) DumpPrint added in v0.1.5

func (kd *LkkDebug) DumpPrint(vs ...interface{})

DumpPrint 打印调试变量.

func (*LkkDebug) DumpStacks

func (kd *LkkDebug) DumpStacks()

DumpStacks 打印堆栈信息.

func (*LkkDebug) GetCallDir added in v0.1.5

func (kd *LkkDebug) GetCallDir() string

GetCallDir 获取调用方法的文件目录.

func (*LkkDebug) GetCallFile added in v0.1.5

func (kd *LkkDebug) GetCallFile() string

GetCallFile 获取调用方法的文件路径.

func (*LkkDebug) GetCallLine added in v0.1.5

func (kd *LkkDebug) GetCallLine() int

GetCallLine 获取调用方法的行号.

func (*LkkDebug) GetCallName added in v0.1.5

func (kd *LkkDebug) GetCallName(f interface{}, onlyFun bool) string

GetCallName 获取调用的方法名称;f为目标方法;onlyFun为true时仅返回方法,不包括包名.

func (*LkkDebug) GetCallPackage added in v0.1.5

func (kd *LkkDebug) GetCallPackage(callFile ...string) string

GetCallPackage 获取调用方法或调用文件的包名.callFile为调用文件路径.

func (*LkkDebug) GetFuncNames added in v0.1.5

func (kd *LkkDebug) GetFuncNames(obj interface{}) (res []string)

GetFuncNames 获取变量的所有(公开的)函数名.

func (*LkkDebug) GetMethod added in v0.0.7

func (kd *LkkDebug) GetMethod(t interface{}, method string) interface{}

GetMethod 获取对象t中的method方法. 注意:返回的方法中的第一个参数是接收者. 所以,调用返回的方法时,必须将接收者作为第一个参数传递.

func (*LkkDebug) HasMethod added in v0.0.7

func (kd *LkkDebug) HasMethod(t interface{}, method string) bool

HasMethod 检查对象t是否具有method方法.

func (*LkkDebug) Stacks added in v0.2.4

func (kd *LkkDebug) Stacks(skip int) []byte

Stacks 获取堆栈信息;skip为要跳过的帧数.

func (*LkkDebug) WrapError added in v0.2.0

func (kd *LkkDebug) WrapError(err error, args ...interface{}) (res error)

WrapError 错误包裹.

type LkkEncrypt

type LkkEncrypt struct {
}

LkkEncrypt is the receiver of encrypt utilities

func (*LkkEncrypt) AesCBCDecrypt added in v0.0.7

func (ke *LkkEncrypt) AesCBCDecrypt(cipherText, key []byte, paddingType ...LkkPKCSType) ([]byte, error)

AesCBCDecrypt AES-CBC密码分组链接(Cipher-block chaining)模式解密. cipherText为密文;key为密钥,长16/24/32;paddingType为填充方式,枚举(PKCS_NONE,PKCS_ZERO,PKCS_SEVEN),默认PKCS_SEVEN.

func (*LkkEncrypt) AesCBCEncrypt added in v0.0.7

func (ke *LkkEncrypt) AesCBCEncrypt(clearText, key []byte, paddingType ...LkkPKCSType) ([]byte, error)

AesCBCEncrypt AES-CBC密码分组链接(Cipher-block chaining)模式加密.加密无法并行,不适合对流数据加密. clearText为明文;key为密钥,长16/24/32;paddingType为填充方式,枚举(PKCS_ZERO,PKCS_SEVEN),默认PKCS_SEVEN.

func (*LkkEncrypt) AesCFBDecrypt added in v0.0.7

func (ke *LkkEncrypt) AesCFBDecrypt(cipherText, key []byte) ([]byte, error)

AesCFBDecrypt AES-CFB密文反馈(Cipher feedback)模式解密. cipherText为密文;key为密钥,长16/24/32.

func (*LkkEncrypt) AesCFBEncrypt added in v0.0.7

func (ke *LkkEncrypt) AesCFBEncrypt(clearText, key []byte) ([]byte, error)

AesCFBEncrypt AES-CFB密文反馈(Cipher feedback)模式加密.适合对流数据加密. clearText为明文;key为密钥,长16/24/32.

func (*LkkEncrypt) AesCTRDecrypt added in v0.0.7

func (ke *LkkEncrypt) AesCTRDecrypt(cipherText, key []byte) ([]byte, error)

AesCTRDecrypt AES-CTR计算器(Counter)模式解密. cipherText为密文;key为密钥,长16/24/32.

func (*LkkEncrypt) AesCTREncrypt added in v0.0.7

func (ke *LkkEncrypt) AesCTREncrypt(clearText, key []byte) ([]byte, error)

AesCTREncrypt AES-CTR计算器(Counter)模式加密. clearText为明文;key为密钥,长16/24/32.

func (*LkkEncrypt) AesOFBDecrypt added in v0.0.7

func (ke *LkkEncrypt) AesOFBDecrypt(cipherText, key []byte) ([]byte, error)

AesOFBDecrypt AES-OFB输出反馈(Output feedback)模式解密. cipherText为密文;key为密钥,长16/24/32.

func (*LkkEncrypt) AesOFBEncrypt added in v0.0.7

func (ke *LkkEncrypt) AesOFBEncrypt(clearText, key []byte) ([]byte, error)

AesOFBEncrypt AES-OFB输出反馈(Output feedback)模式加密.适合对流数据加密. clearText为明文;key为密钥,长16/24/32.

func (*LkkEncrypt) AuthCode

func (ke *LkkEncrypt) AuthCode(str, key []byte, encode bool, expiry int64) ([]byte, int64)

AuthCode 授权码编码或解码; encode为true时编码,为false解码; expiry为加密时的有效期,单位秒,为0时代表永久(100年); 返回结果为加密/解密的字符串和有效期时间戳.

func (*LkkEncrypt) Base64Decode

func (ke *LkkEncrypt) Base64Decode(str []byte) ([]byte, error)

Base64Decode 对使用 MIME base64 编码的数据进行解码.

func (*LkkEncrypt) Base64Encode

func (ke *LkkEncrypt) Base64Encode(str []byte) []byte

Base64Encode 使用 MIME base64 对数据进行编码.

func (*LkkEncrypt) Base64UrlDecode

func (ke *LkkEncrypt) Base64UrlDecode(str []byte) ([]byte, error)

Base64UrlDecode url安全的Base64Decode.

func (*LkkEncrypt) Base64UrlEncode

func (ke *LkkEncrypt) Base64UrlEncode(str []byte) []byte

Base64UrlEncode url安全的Base64Encode,没有'/'和'+'及结尾的'=' .

func (*LkkEncrypt) EasyDecrypt

func (ke *LkkEncrypt) EasyDecrypt(val, key []byte) []byte

EasyDecrypt 简单解密. val为待解密的字符串,key为密钥.

func (*LkkEncrypt) EasyEncrypt

func (ke *LkkEncrypt) EasyEncrypt(data, key []byte) []byte

EasyEncrypt 简单加密. data为要加密的原字符串,key为密钥.

func (*LkkEncrypt) GenerateRsaKeys added in v0.0.7

func (ke *LkkEncrypt) GenerateRsaKeys(bits int) (private []byte, public []byte, err error)

GenerateRsaKeys 生成RSA密钥对.bits为密钥位数,必须是64的倍数,范围为512-65536,通常为1024或2048.

func (*LkkEncrypt) HmacShaX

func (ke *LkkEncrypt) HmacShaX(data, secret []byte, x uint16) []byte

HmacShaX HmacSHA-x加密,x为1/256/512 .

func (*LkkEncrypt) PasswordHash

func (ke *LkkEncrypt) PasswordHash(password []byte, costs ...int) ([]byte, error)

PasswordHash 创建密码的散列值;costs为算法的cost,范围4~31,默认10;注意:值越大越耗时.

func (*LkkEncrypt) PasswordVerify

func (ke *LkkEncrypt) PasswordVerify(password, hash []byte) bool

PasswordVerify 验证密码是否和散列值匹配.

func (*LkkEncrypt) RsaPrivateDecrypt added in v0.0.7

func (ke *LkkEncrypt) RsaPrivateDecrypt(cipherText, privateKey []byte) ([]byte, error)

RsaPrivateDecrypt RSA私钥解密.比加密耗时. cipherText为密文,privateKey为私钥.

func (*LkkEncrypt) RsaPrivateDecryptLong added in v0.2.1

func (ke *LkkEncrypt) RsaPrivateDecryptLong(cipherText, privateKey []byte) ([]byte, error)

RsaPrivateDecryptLong RSA私钥解密长文本.比加密耗时. cipherText为密文,privateKey为私钥.

func (*LkkEncrypt) RsaPrivateEncrypt added in v0.0.7

func (ke *LkkEncrypt) RsaPrivateEncrypt(clearText, privateKey []byte) ([]byte, error)

RsaPrivateEncrypt RSA私钥加密.比解密耗时. clearText为明文,privateKey为私钥.

func (*LkkEncrypt) RsaPrivateEncryptLong added in v0.2.2

func (ke *LkkEncrypt) RsaPrivateEncryptLong(clearText, privateKey []byte) ([]byte, error)

RsaPrivateEncryptLong RSA私钥加密长文本.比解密耗时. clearText为明文,privateKey为私钥.

func (*LkkEncrypt) RsaPublicDecrypt added in v0.0.7

func (ke *LkkEncrypt) RsaPublicDecrypt(cipherText, publicKey []byte) ([]byte, error)

RsaPublicDecrypt RSA公钥解密. cipherText为密文,publicKey为公钥.

func (*LkkEncrypt) RsaPublicDecryptLong added in v0.2.2

func (ke *LkkEncrypt) RsaPublicDecryptLong(cipherText, publicKey []byte) ([]byte, error)

RsaPublicDecryptLong RSA公钥解密长文本. cipherText为密文,publicKey为公钥.

func (*LkkEncrypt) RsaPublicEncrypt added in v0.0.7

func (ke *LkkEncrypt) RsaPublicEncrypt(clearText, publicKey []byte) ([]byte, error)

RsaPublicEncrypt RSA公钥加密. clearText为明文,publicKey为公钥.

func (*LkkEncrypt) RsaPublicEncryptLong added in v0.2.1

func (ke *LkkEncrypt) RsaPublicEncryptLong(clearText, publicKey []byte) ([]byte, error)

RsaPublicEncryptLong RSA公钥加密长文本.

type LkkFile

type LkkFile struct {
}

LkkFile is the receiver of file utilities

func (*LkkFile) AbsPath

func (kf *LkkFile) AbsPath(fpath string) string

AbsPath 获取绝对路径,path可允许不存在.

func (*LkkFile) AppendFile added in v0.0.7

func (kf *LkkFile) AppendFile(fpath string, data []byte) error

AppendFile 插入文件内容.若文件不存在,则自动创建.

func (*LkkFile) Basename

func (kf *LkkFile) Basename(fpath string) string

Basename 返回路径中的文件名部分(包括后缀),空路径时返回".".

func (*LkkFile) ChmodBatch

func (kf *LkkFile) ChmodBatch(fpath string, filemode, dirmode os.FileMode) (res bool)

ChmodBatch 批量改变路径权限模式(包括子目录和所属文件). filemode为文件权限模式,dirmode为目录权限模式.

func (*LkkFile) CopyDir

func (kf *LkkFile) CopyDir(source string, dest string, cover LkkFileCover) (int64, error)

CopyDir 拷贝目录.source为源目录,dest为目标目录,cover为是否覆盖,枚举值(FILE_COVER_ALLOW、FILE_COVER_IGNORE、FILE_COVER_DENY).

func (*LkkFile) CopyFile

func (kf *LkkFile) CopyFile(source string, dest string, cover LkkFileCover) (int64, error)

CopyFile 拷贝source源文件到dest目标文件,cover为是否覆盖,枚举值(FILE_COVER_ALLOW、FILE_COVER_IGNORE、FILE_COVER_DENY).

func (kf *LkkFile) CopyLink(source string, dest string, cover LkkFileCover) error

CopyLink 拷贝链接.source为源链接,dest为目标链接,cover为是否覆盖,枚举值(FILE_COVER_ALLOW、FILE_COVER_IGNORE、FILE_COVER_DENY).

func (*LkkFile) CountLines added in v0.0.7

func (kf *LkkFile) CountLines(fpath string, buffLength int) (int, error)

CountLines 统计文件行数.buffLength为缓冲长度,kb.

func (*LkkFile) DelDir

func (kf *LkkFile) DelDir(dir string, delete bool) error

DelDir 删除目录.delete为true时连该目录一起删除;为false时只清空该目录.

func (*LkkFile) DirSize

func (kf *LkkFile) DirSize(fpath string) int64

DirSize 获取目录大小(bytes字节).

func (*LkkFile) Dirname

func (kf *LkkFile) Dirname(fpath string) string

Dirname 返回路径中的目录部分,注意空路径或无目录的返回".".

func (*LkkFile) FastCopy

func (kf *LkkFile) FastCopy(source string, dest string) (int64, error)

FastCopy 快速拷贝源文件到目标文件,不做安全检查.

func (*LkkFile) FileSize

func (kf *LkkFile) FileSize(fpath string) int64

FileSize 获取文件大小(bytes字节);注意:文件不存在或无法访问时返回-1 .

func (*LkkFile) FileTree

func (kf *LkkFile) FileTree(fpath string, ftype LkkFileTree, recursive bool, filters ...FileFilter) []string

FileTree 获取目录的文件树列表. ftype为枚举(FILE_TREE_ALL、FILE_TREE_DIR、FILE_TREE_FILE); recursive为是否递归; filters为一个或多个文件过滤器函数,FileFilter类型.

func (*LkkFile) FormatDir

func (kf *LkkFile) FormatDir(fpath string) string

FormatDir 格式化目录,将"\","//"替换为"/",且以"/"结尾.

func (*LkkFile) FormatPath added in v0.1.4

func (kf *LkkFile) FormatPath(fpath string) string

FormatPath 格式化路径.

func (*LkkFile) GetExt

func (kf *LkkFile) GetExt(fpath string) string

GetExt 获取文件的小写扩展名,不包括点"." .

func (*LkkFile) GetFileMode added in v0.0.7

func (kf *LkkFile) GetFileMode(fpath string) (os.FileMode, error)

GetFileMode 获取路径的权限模式.

func (*LkkFile) GetMime

func (kf *LkkFile) GetMime(fpath string, fast bool) string

GetMime 获取文件mime类型;fast为true时根据后缀快速获取;为false时读取文件头获取.

func (*LkkFile) GetModTime added in v0.0.7

func (kf *LkkFile) GetModTime(fpath string) (res int64)

GetModTime 获取文件的修改时间戳,秒.

func (*LkkFile) Glob

func (kf *LkkFile) Glob(pattern string) ([]string, error)

Glob 寻找与模式匹配的文件路径.

func (*LkkFile) Img2Base64

func (kf *LkkFile) Img2Base64(fpath string) (string, error)

Img2Base64 读取图片文件,并转换为base64字符串.

func (*LkkFile) IsBinary

func (kf *LkkFile) IsBinary(fpath string) bool

IsBinary 是否二进制文件(且存在).

func (*LkkFile) IsDir

func (kf *LkkFile) IsDir(fpath string) bool

IsDir 是否目录(且存在).

func (*LkkFile) IsExecutable

func (kf *LkkFile) IsExecutable(fpath string) bool

IsExecutable 是否可执行文件.

func (*LkkFile) IsExist

func (kf *LkkFile) IsExist(fpath string) bool

IsExist 路径(文件/目录)是否存在.

func (*LkkFile) IsFile

func (kf *LkkFile) IsFile(fpath string, ftype ...LkkFileType) (res bool)

IsFile 是否(某类型)文件,且存在. ftype为枚举(FILE_TYPE_ANY、FILE_TYPE_LINK、FILE_TYPE_REGULAR、FILE_TYPE_COMMON),默认FILE_TYPE_ANY;

func (*LkkFile) IsImg

func (kf *LkkFile) IsImg(fpath string) bool

IsImg 是否图片文件(仅检查后缀).

func (kf *LkkFile) IsLink(fpath string) bool

IsLink 是否链接文件(软链接,且存在).

func (*LkkFile) IsReadable

func (kf *LkkFile) IsReadable(fpath string) bool

IsReadable 路径是否可读.

func (*LkkFile) IsWritable

func (kf *LkkFile) IsWritable(fpath string) bool

IsWritable 路径是否可写.

func (*LkkFile) IsZip added in v0.0.7

func (kf *LkkFile) IsZip(fpath string) (bool, error)

IsZip 是否zip文件.

func (*LkkFile) Md5File added in v0.3.4

func (kf *LkkFile) Md5File(fpath string, length uint8) (string, error)

Md5File 获取文件md5值,fpath为文件路径,length指定结果长度32/16.

func (*LkkFile) Md5Reader added in v0.3.4

func (kf *LkkFile) Md5Reader(reader io.Reader, length uint8) (string, error)

Md5Reader 计算Reader的 MD5 散列值.

func (*LkkFile) Mkdir

func (kf *LkkFile) Mkdir(fpath string, mode os.FileMode) error

Mkdir 创建目录,允许多级.

func (*LkkFile) Pathinfo

func (kf *LkkFile) Pathinfo(fpath string, option int) map[string]string

Pathinfo 获取文件路径的信息(支持URL). option为要返回的信息,枚举值如下: -1: all; 1: dirname; 2: basename; 4: extension; 8: filename; 若要查看某几项,则为它们之间的和.

func (*LkkFile) ReadFile added in v0.0.7

func (kf *LkkFile) ReadFile(fpath string) ([]byte, error)

ReadFile 读取文件内容.

func (*LkkFile) ReadFirstLine added in v0.0.7

func (kf *LkkFile) ReadFirstLine(fpath string) []byte

ReadFirstLine 读取文件首行.

func (*LkkFile) ReadInArray added in v0.0.7

func (kf *LkkFile) ReadInArray(fpath string) ([]string, error)

ReadInArray 把整个文件读入一个数组中,每行作为一个元素.

func (*LkkFile) ReadLastLine added in v0.0.7

func (kf *LkkFile) ReadLastLine(fpath string) []byte

ReadLastLine 读取文件末行.

func (*LkkFile) RealPath

func (kf *LkkFile) RealPath(fpath string) string

RealPath 返回规范化的真实绝对路径名.path必须存在,若路径不存在则返回空字符串.

func (*LkkFile) Rename

func (kf *LkkFile) Rename(oldname, newname string) error

Rename 重命名(或移动)文件/目录.

func (*LkkFile) SafeFileName

func (kf *LkkFile) SafeFileName(str string) string

SafeFileName 将文件名转换为安全可用的字符串.

func (*LkkFile) ShaXFile added in v0.3.4

func (kf *LkkFile) ShaXFile(fpath string, x uint16) (string, error)

ShaXFile 计算文件的 shaX 散列值,fpath为文件路径,x为1/256/512.

func (*LkkFile) ShaXReader added in v0.3.4

func (kf *LkkFile) ShaXReader(reader io.Reader, x uint16) (string, error)

ShaXReader 计算Reader的 shaX 散列值,x为1/256/512.

func (*LkkFile) TarGz

func (kf *LkkFile) TarGz(src string, dstTar string, ignorePatterns ...string) (bool, error)

TarGz 打包压缩tar.gz. src为源文件或目录,dstTar为打包的路径名,ignorePatterns为要忽略的文件正则.

func (*LkkFile) Touch

func (kf *LkkFile) Touch(fpath string, size int64) (res bool)

Touch 快速创建指定大小的文件,fpath为文件路径,size为字节.

func (*LkkFile) UnTarGz

func (kf *LkkFile) UnTarGz(srcTar, dstDir string) (bool, error)

UnTarGz 将tar.gz文件解压缩. srcTar为压缩包,dstDir为解压目录.

func (*LkkFile) UnZip added in v0.0.7

func (kf *LkkFile) UnZip(srcZip, dstDir string) (bool, error)

UnZip 解压zip文件.srcZip为zip文件路径,dstDir为解压目录.

func (kf *LkkFile) Unlink(fpath string) error

Unlink 删除文件.

func (*LkkFile) WriteFile added in v0.0.7

func (kf *LkkFile) WriteFile(fpath string, data []byte, perm ...os.FileMode) error

WriteFile 将内容写入文件. fpath为文件路径;data为内容;perm为权限,默认为0655.

func (*LkkFile) Zip added in v0.0.7

func (kf *LkkFile) Zip(dst string, fpaths ...string) (bool, error)

Zip 将文件或目录进行zip打包.fpaths为源文件或目录的路径.

type LkkFileCover

type LkkFileCover int8

LkkFileCover 枚举类型,文件是否覆盖

type LkkFileTree

type LkkFileTree uint8

LkkFileTree 枚举类型,文件树查找类型

type LkkFileType added in v0.0.7

type LkkFileType uint8

LkkFileType 枚举类型,文件类型

type LkkNumber

type LkkNumber struct {
}

LkkNumber is the receiver of number utilities

func (*LkkNumber) AbsFloat added in v0.0.7

func (kn *LkkNumber) AbsFloat(number float64) float64

AbsFloat 浮点型取绝对值.

func (*LkkNumber) AbsInt added in v0.0.7

func (kn *LkkNumber) AbsInt(number int64) int64

AbsInt 整型取绝对值.

func (*LkkNumber) Average added in v0.0.7

func (kn *LkkNumber) Average(nums ...interface{}) (res float64)

Average 对任意类型序列中的数值类型求平均值,忽略非数值的.

func (*LkkNumber) AverageFloat32 added in v0.3.9

func (kn *LkkNumber) AverageFloat32(nums ...float32) (res float32)

AverageFloat32 对32位浮点数序列求平均值.

func (*LkkNumber) AverageFloat64 added in v0.0.7

func (kn *LkkNumber) AverageFloat64(nums ...float64) (res float64)

AverageFloat64 对64位浮点数序列求平均值.

func (*LkkNumber) AverageInt added in v0.0.7

func (kn *LkkNumber) AverageInt(nums ...int) (res float64)

AverageInt 对int整数序列求平均值.

func (*LkkNumber) AverageInt64 added in v0.3.9

func (kn *LkkNumber) AverageInt64(nums ...int64) (res float64)

AverageInt64 对int64整数序列求平均值.

func (*LkkNumber) ByteFormat

func (kn *LkkNumber) ByteFormat(size float64, decimal uint8, delimiter string) string

ByteFormat 格式化文件比特大小. size为文件大小,decimal为要保留的小数位数,delimiter为数字和单位间的分隔符.

func (*LkkNumber) Ceil

func (kn *LkkNumber) Ceil(value float64) float64

Ceil 向上取整.

func (*LkkNumber) Exp

func (kn *LkkNumber) Exp(x float64) float64

Exp 计算 e 的指数.

func (*LkkNumber) Expm1

func (kn *LkkNumber) Expm1(x float64) float64

Expm1 返回 exp(x) - 1.

func (*LkkNumber) FloatEqual added in v0.0.7

func (kn *LkkNumber) FloatEqual(f1 float64, f2 float64, decimal ...uint8) (res bool)

FloatEqual 比较两个浮点数是否相等.decimal为小数精确位数,默认为 FLOAT_DECIMAL . 有效数值是长度(包括小数点)为17位之内的数值,最后一位会四舍五入.

func (*LkkNumber) Floor

func (kn *LkkNumber) Floor(value float64) float64

Floor 向下取整.

func (*LkkNumber) GeoDistance added in v0.0.7

func (kn *LkkNumber) GeoDistance(lng1, lat1, lng2, lat2 float64) float64

GeoDistance 获取地理距离/米. 参数分别为两点的经度和纬度:lat:-90~90,lng:-180~180.

func (*LkkNumber) InRange

func (kn *LkkNumber) InRange(value interface{}, left interface{}, right interface{}) bool

InRange 数值是否在某个范围内,将自动转换类型再比较.

func (*LkkNumber) InRangeFloat32

func (kn *LkkNumber) InRangeFloat32(value, left, right float32) bool

InRangeFloat32 数值是否在2个32位浮点数范围内.

func (*LkkNumber) InRangeFloat64

func (kn *LkkNumber) InRangeFloat64(value, left, right float64) bool

InRangeFloat64 数值是否在2个64位浮点数范围内.

func (*LkkNumber) InRangeInt

func (kn *LkkNumber) InRangeInt(value, left, right int) bool

InRangeInt 数值是否在2个整数范围内.

func (*LkkNumber) IsEven

func (kn *LkkNumber) IsEven(val int) bool

IsEven 变量是否偶数.

func (*LkkNumber) IsNan

func (kn *LkkNumber) IsNan(val interface{}) bool

IsNan 是否为“非数值”.注意,这里复数也算“非数值”.

func (*LkkNumber) IsNatural

func (kn *LkkNumber) IsNatural(value float64) bool

IsNatural 数值是否为自然数(包括0).

func (*LkkNumber) IsNaturalRange added in v0.1.4

func (kn *LkkNumber) IsNaturalRange(arr []int, strict bool) (res bool)

IsNaturalRange 是否连续的自然数数组/切片,如[0,1,2,3...],其中不能有间断. strict为是否严格检查元素的顺序.

func (*LkkNumber) IsNegative

func (kn *LkkNumber) IsNegative(value float64) bool

IsNegative 数值是否为负数.

func (*LkkNumber) IsNonNegative

func (kn *LkkNumber) IsNonNegative(value float64) bool

IsNonNegative 数值是否为非负数.

func (*LkkNumber) IsNonPositive

func (kn *LkkNumber) IsNonPositive(value float64) bool

IsNonPositive 数值是否为非正数.

func (*LkkNumber) IsOdd

func (kn *LkkNumber) IsOdd(val int) bool

IsOdd 变量是否奇数.

func (*LkkNumber) IsPositive

func (kn *LkkNumber) IsPositive(value float64) bool

IsPositive 数值是否为正数.

func (*LkkNumber) IsWhole

func (kn *LkkNumber) IsWhole(value float64) bool

IsWhole 数值是否为整数.

func (*LkkNumber) Log added in v0.1.4

func (kn *LkkNumber) Log(x, y float64) float64

Log 对数表达式,求以y为底x的对数.

func (*LkkNumber) Max

func (kn *LkkNumber) Max(nums ...interface{}) (res float64)

Max 取出任意类型中数值类型的最大值,无数值类型则为0.

func (*LkkNumber) MaxFloat32 added in v0.3.8

func (kn *LkkNumber) MaxFloat32(nums ...float32) (res float32)

MaxFloat32 32位浮点数序列求最大值.

func (*LkkNumber) MaxFloat64 added in v0.0.7

func (kn *LkkNumber) MaxFloat64(nums ...float64) (res float64)

MaxFloat64 64位浮点数序列求最大值.

func (*LkkNumber) MaxInt added in v0.0.7

func (kn *LkkNumber) MaxInt(nums ...int) (res int)

MaxInt int整数序列求最大值.

func (*LkkNumber) MaxInt64 added in v0.3.8

func (kn *LkkNumber) MaxInt64(nums ...int64) (res int64)

MaxInt64 int64整数序列求最大值.

func (*LkkNumber) Min

func (kn *LkkNumber) Min(nums ...interface{}) (res float64)

Min 取出任意类型中数值类型的最小值,无数值类型则为0.

func (*LkkNumber) MinFloat32 added in v0.3.8

func (kn *LkkNumber) MinFloat32(nums ...float32) (res float32)

MinFloat32 32位浮点数序列求最小值.

func (*LkkNumber) MinFloat64 added in v0.0.7

func (kn *LkkNumber) MinFloat64(nums ...float64) (res float64)

MinFloat64 64位浮点数序列求最小值.

func (*LkkNumber) MinInt added in v0.0.7

func (kn *LkkNumber) MinInt(nums ...int) (res int)

MinInt int整数序列求最小值.

func (*LkkNumber) MinInt64 added in v0.3.8

func (kn *LkkNumber) MinInt64(nums ...int64) (res int64)

MinInt64 int64整数序列求最小值.

func (*LkkNumber) NearLogarithm added in v0.1.6

func (kn *LkkNumber) NearLogarithm(num, base int, left bool) int

NearLogarithm 求以 base 为底 num 的对数临近值. num为自然数,base为正整数,left是否向左取整.

func (*LkkNumber) NumSign

func (kn *LkkNumber) NumSign(value float64) (res int8)

NumSign 返回数值的符号.值>0为1,<0为-1,其他为0.

func (*LkkNumber) NumberFormat

func (kn *LkkNumber) NumberFormat(number float64, decimal uint8, point, thousand string) string

NumberFormat 以千位分隔符方式格式化一个数字. decimal为要保留的小数位数,point为小数点显示的字符,thousand为千位分隔符显示的字符. 有效数值是长度(包括小数点)为17位之内的数值,最后一位会四舍五入.

func (*LkkNumber) Percent added in v0.0.7

func (kn *LkkNumber) Percent(val, total interface{}) float64

Percent 返回百分比((val/total) *100).

func (*LkkNumber) Pow

func (kn *LkkNumber) Pow(x, y float64) float64

Pow 指数表达式,求x的y次方.

func (*LkkNumber) Rand

func (kn *LkkNumber) Rand(min, max int) int

Rand RandInt的别名.

func (*LkkNumber) RandFloat64 added in v0.0.7

func (kn *LkkNumber) RandFloat64(min, max float64) float64

RandFloat64 生成一个min~max范围内的随机float64浮点数.

func (*LkkNumber) RandInt added in v0.0.7

func (kn *LkkNumber) RandInt(min, max int) int

RandInt 生成一个min~max范围内的随机int整数.

func (*LkkNumber) RandInt64 added in v0.0.7

func (kn *LkkNumber) RandInt64(min, max int64) int64

RandInt64 生成一个min~max范围内的随机int64整数.

func (*LkkNumber) Range

func (kn *LkkNumber) Range(start, end int) []int

Range 根据范围创建数组,包含指定的元素. start为起始元素值,end为末尾元素值.若start<end,返回升序的数组;若start>end,返回降序的数组.

func (*LkkNumber) Round

func (kn *LkkNumber) Round(value float64) float64

Round 对浮点数(的整数)进行四舍五入.

func (*LkkNumber) RoundPlus added in v0.0.7

func (kn *LkkNumber) RoundPlus(value float64, precision uint8) float64

RoundPlus 对指定的小数位进行四舍五入. precision为小数位数.

func (*LkkNumber) SplitNaturalNum added in v0.1.6

func (kn *LkkNumber) SplitNaturalNum(num, base int) []int

SplitNaturalNum 将自然数 num 按底数 base 进行拆解;所得结果的列表累计和为num.

func (*LkkNumber) Sum added in v0.0.7

func (kn *LkkNumber) Sum(nums ...interface{}) (res float64)

Sum 对任意类型序列中的数值类型求和,忽略非数值的.

func (*LkkNumber) SumFloat32 added in v0.3.9

func (kn *LkkNumber) SumFloat32(nums ...float32) float32

SumFloat32 32位浮点数求和.

func (*LkkNumber) SumFloat64 added in v0.0.7

func (kn *LkkNumber) SumFloat64(nums ...float64) float64

SumFloat64 64位浮点数求和.

func (*LkkNumber) SumInt added in v0.0.7

func (kn *LkkNumber) SumInt(nums ...int) int

SumInt int整数求和.

func (*LkkNumber) SumInt64 added in v0.3.9

func (kn *LkkNumber) SumInt64(nums ...int64) int64

SumInt64 int64整数求和.

type LkkOS

type LkkOS struct {
}

LkkOS is the receiver of OS utilities

func (*LkkOS) Chdir

func (ko *LkkOS) Chdir(dir string) error

Chdir 改变/进入新的工作目录.

func (*LkkOS) Chmod

func (ko *LkkOS) Chmod(filename string, mode os.FileMode) bool

Chmod 改变文件模式.

func (*LkkOS) Chown

func (ko *LkkOS) Chown(filename string, uid, gid int) bool

Chown 改变文件的所有者.

func (*LkkOS) ClientIp

func (ko *LkkOS) ClientIp(req *http.Request) string

ClientIp 获取客户端真实IP,req为http请求.

func (*LkkOS) CpuUsage

func (ko *LkkOS) CpuUsage() (user, idle, total uint64)

CpuUsage 获取CPU使用率(darwin系统必须使用cgo),单位jiffies(节拍数). user为用户态(用户进程)的运行时间, idle为空闲时间, total为累计时间.

func (*LkkOS) DiskUsage

func (ko *LkkOS) DiskUsage(path string) (used, free, total uint64)

DiskUsage 获取磁盘(目录)使用情况,单位字节.参数path为路径. used为已用, free为空闲, total为总数.

func (*LkkOS) DownloadFile added in v0.3.6

func (ko *LkkOS) DownloadFile(url string, savePath string, cover bool, client *http.Client) (written int64, err error)

DownloadFile 下载文件.其中 url 为文件网址; savePath 为保存路径; cover 是否覆盖已有文件; client 为自定义的请求客户端,不提供时默认使用http.DefaultClient.

func (*LkkOS) Exec

func (ko *LkkOS) Exec(command string) (retInt int, outStr, errStr []byte)

Exec 执行一个外部命令. retInt为1时失败,为0时成功;outStr为执行命令的输出;errStr为错误输出. 命令如 "ls -a" "/bin/bash -c \"ls -a\""

func (*LkkOS) ForceGC added in v0.0.7

func (ko *LkkOS) ForceGC()

ForceGC 强制手动GC垃圾回收(阻塞).

func (*LkkOS) GetBiosInfo added in v0.0.7

func (ko *LkkOS) GetBiosInfo() *BiosInfo

GetBiosInfo 获取BIOS信息. 注意:Mac机器没有BIOS信息,它使用EFI.

func (*LkkOS) GetBoardInfo added in v0.0.7

func (ko *LkkOS) GetBoardInfo() *BoardInfo

GetBoardInfo 获取Board信息.

func (*LkkOS) GetCpuInfo added in v0.0.7

func (ko *LkkOS) GetCpuInfo() *CpuInfo

GetCpuInfo 获取CPU信息.

func (*LkkOS) GetEndian

func (ko *LkkOS) GetEndian() binary.ByteOrder

GetEndian 获取系统字节序类型,小端返回binary.LittleEndian,大端返回binary.BigEndian .

func (*LkkOS) GetHostByIp

func (ko *LkkOS) GetHostByIp(ipAddress string) (string, error)

GetHostByIp 获取指定的IP地址对应的主机名.

func (*LkkOS) GetIPs

func (ko *LkkOS) GetIPs() (ips []string)

GetIPs 获取本机的IP列表.

func (*LkkOS) GetIpByHostname

func (ko *LkkOS) GetIpByHostname(hostname string) (string, error)

GetIpByHostname 返回主机名对应的 IPv4地址.

func (*LkkOS) GetIpsByDomain

func (ko *LkkOS) GetIpsByDomain(domain string) ([]string, error)

GetIpsByDomain 获取互联网域名/主机名对应的 IPv4 地址列表.

func (*LkkOS) GetMacAddrs

func (ko *LkkOS) GetMacAddrs() (macAddrs []string)

GetMacAddrs 获取本机的Mac网卡地址列表.

func (*LkkOS) GetPidByPort added in v0.0.7

func (ko *LkkOS) GetPidByPort(port int) (pid int)

GetPidByPort 根据端口号获取监听的进程PID. linux可能要求root权限; darwin依赖lsof; windows依赖netstat.

func (*LkkOS) GetProcessExecPath added in v0.0.7

func (ko *LkkOS) GetProcessExecPath(pid int) string

GetProcessExecPath 根据PID获取进程的执行路径.

func (*LkkOS) GetSystemInfo

func (ko *LkkOS) GetSystemInfo() *SystemInfo

GetSystemInfo 获取系统运行信息.

func (*LkkOS) GetTempDir

func (ko *LkkOS) GetTempDir() string

GetTempDir 返回用于临时文件的目录.

func (*LkkOS) Getcwd

func (ko *LkkOS) Getcwd() (string, error)

Getcwd 取得当前工作目录(程序可能在任务中进行多次目录切换).

func (*LkkOS) Getenv

func (ko *LkkOS) Getenv(varname string, defvalue ...string) string

Getenv 获取一个环境变量的值.defvalue为默认值.

func (*LkkOS) GoMemory

func (ko *LkkOS) GoMemory() uint64

GoMemory 获取当前go程序的内存使用,返回字节数.

func (*LkkOS) HomeDir

func (ko *LkkOS) HomeDir() (string, error)

HomeDir 获取当前用户的主目录.

func (*LkkOS) Hostname

func (ko *LkkOS) Hostname() (string, error)

Hostname 获取主机名.

func (*LkkOS) IsLinux

func (ko *LkkOS) IsLinux() bool

IsLinux 当前操作系统是否Linux.

func (*LkkOS) IsLittleEndian

func (ko *LkkOS) IsLittleEndian() bool

IsLittleEndian 系统字节序类型是否小端存储.

func (*LkkOS) IsMac

func (ko *LkkOS) IsMac() bool

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

func (*LkkOS) IsPortOpen

func (ko *LkkOS) IsPortOpen(host string, port interface{}, protocols ...string) bool

IsPortOpen 检查主机端口是否开放. host为主机名;port为(整型/字符串)端口号;protocols为协议名称,可选,默认tcp.

func (*LkkOS) IsPrivateIp

func (ko *LkkOS) IsPrivateIp(str string) (bool, error)

IsPrivateIp 是否私有IP地址(ipv4/ipv6).

func (*LkkOS) IsProcessExists added in v0.0.7

func (ko *LkkOS) IsProcessExists(pid int) (res bool)

IsProcessExists 进程是否存在.

func (*LkkOS) IsPublicIP

func (ko *LkkOS) IsPublicIP(str string) (bool, error)

IsPublicIP 是否公网IPv4.

func (*LkkOS) IsWindows

func (ko *LkkOS) IsWindows() bool

IsWindows 当前操作系统是否Windows.

func (*LkkOS) LocalIP

func (ko *LkkOS) LocalIP() (string, error)

LocalIP 获取本机第一个NIC's IP.

func (*LkkOS) MemoryUsage

func (ko *LkkOS) MemoryUsage(virtual bool) (used, free, total uint64)

MemoryUsage 获取内存使用率,单位字节. 参数 virtual(仅支持linux),是否取虚拟内存. used为已用, free为空闲, total为总数.

func (*LkkOS) OutboundIP

func (ko *LkkOS) OutboundIP() (string, error)

OutboundIP 获取本机的出口IP.

func (*LkkOS) PrivateCIDR

func (ko *LkkOS) PrivateCIDR() []*net.IPNet

PrivateCIDR 获取私有网段的CIDR(无类别域间路由).

func (*LkkOS) Pwd

func (ko *LkkOS) Pwd() string

Pwd 获取当前程序运行所在的路径,注意和Getwd有所不同. 若当前执行的是链接文件,则会指向真实二进制程序的所在目录.

func (*LkkOS) Setenv

func (ko *LkkOS) Setenv(varname, data string) error

Setenv 设置一个环境变量的值.

func (*LkkOS) System

func (ko *LkkOS) System(command string) (retInt int, outStr, errStr []byte)

System 与Exec相同,但会同时打印标准输出和标准错误.

func (*LkkOS) TriggerGC added in v0.0.7

func (ko *LkkOS) TriggerGC()

TriggerGC 触发GC(非阻塞).

func (*LkkOS) Unsetenv added in v0.1.5

func (ko *LkkOS) Unsetenv(varname string) error

Unsetenv 删除一个环境变量.

func (*LkkOS) Uptime added in v0.1.5

func (ko *LkkOS) Uptime() (res uint64, err error)

Uptime 获取系统运行时间,秒.

type LkkPKCSType added in v0.0.7

type LkkPKCSType int8

LkkPKCSType 枚举类型,PKCS填充类型

type LkkPadType

type LkkPadType uint8

LkkPadType 枚举类型,字符串填充类型

type LkkRandString

type LkkRandString uint8

LkkRandString 枚举类型,随机字符串类型

type LkkString

type LkkString struct {
}

LkkString is the receiver of string utilities

func (*LkkString) Addslashes

func (ks *LkkString) Addslashes(str string) string

Addslashes 使用反斜线引用字符串.

func (*LkkString) AtWho added in v0.0.7

func (ks *LkkString) AtWho(text string, minLen ...int) []string

AtWho 查找被@的用户名.minLen为用户名最小长度,默认5.

func (*LkkString) Big5ToUtf8

func (ks *LkkString) Big5ToUtf8(s []byte) ([]byte, error)

Big5ToUtf8 BIG5转UTF-8编码.

func (*LkkString) Br2nl

func (ks *LkkString) Br2nl(str string) string

Br2nl 将br标签转换为换行符.

func (*LkkString) Chr

func (ks *LkkString) Chr(chr uint) string

Chr 返回相对应于 ASCII 所指定的单个字符.

func (*LkkString) ChunkBytes added in v0.2.1

func (ks *LkkString) ChunkBytes(bs []byte, size int) [][]byte

ChunkBytes 将字节切片分割为多个小块.其中size为每块的长度.

func (*LkkString) ChunkSplit

func (ks *LkkString) ChunkSplit(str string, chunklen uint, end string) string

ChunkSplit 将字符串分割成小块.str为要分割的字符,chunklen为分割的尺寸,end为行尾序列符号.

func (*LkkString) ClearUrlPrefix added in v0.0.7

func (ks *LkkString) ClearUrlPrefix(str string, prefix ...string) string

ClearUrlPrefix 清除URL的前缀; str为URL字符串,prefix为前缀,默认"/".

func (*LkkString) ClearUrlSuffix added in v0.0.7

func (ks *LkkString) ClearUrlSuffix(str string, suffix ...string) string

ClearUrlSuffix 清除URL的后缀; str为URL字符串,suffix为后缀,默认"/".

func (*LkkString) ClosestWord

func (ks *LkkString) ClosestWord(word string, searchs []string) (string, int)

ClosestWord 获取与原字符串相似度最高的字符串,以及它们的编辑距离. word为原字符串,searchs为待查找的字符串数组.

func (*LkkString) CountBase64Byte

func (ks *LkkString) CountBase64Byte(str string) (res int)

CountBase64Byte 粗略统计base64字符串大小,字节.

func (*LkkString) CountWords added in v0.0.7

func (ks *LkkString) CountWords(str string) (int, map[string]int)

CountWords 统计字符串中单词的使用情况. 返回结果:单词总数;和一个字典,包含每个单词的单独统计. 因为没有分词,对中文尚未很好支持.

func (*LkkString) Crc32

func (ks *LkkString) Crc32(str string) uint32

Crc32 计算一个字符串的 crc32 多项式.

func (*LkkString) DBC2SBC

func (ks *LkkString) DBC2SBC(s string) string

DBC2SBC 半角转全角.

func (*LkkString) DetectEncoding added in v0.1.5

func (ks *LkkString) DetectEncoding(str string) (res string)

DetectEncoding 匹配字符编码,TODO.

func (*LkkString) Dstrpos

func (ks *LkkString) Dstrpos(str string, arr []string, chkCase bool) (bool, string)

Dstrpos 检查字符串str是否包含数组arr的元素之一,返回检查结果和匹配的字符串. chkCase为是否检查大小写.

func (*LkkString) EndsWith added in v0.0.7

func (ks *LkkString) EndsWith(str, sub string, ignoreCase bool) bool

EndsWith 字符串str是否以sub结尾.

func (*LkkString) EndsWiths added in v0.1.5

func (ks *LkkString) EndsWiths(str string, subs []string, ignoreCase bool) (res bool)

EndsWiths 字符串str是否以subs其中之一为结尾.

func (*LkkString) Explode

func (ks *LkkString) Explode(str string, delimiters ...string) (res []string)

Explode 字符串分割.delimiters为分隔符,可选,支持多个.

func (*LkkString) FirstLetter

func (ks *LkkString) FirstLetter(str string) string

FirstLetter 获取字符串首字母.

func (*LkkString) FormatUrl

func (ks *LkkString) FormatUrl(str string) string

FormatUrl 格式化URL.

func (*LkkString) GbkToUtf8

func (ks *LkkString) GbkToUtf8(s []byte) ([]byte, error)

GbkToUtf8 GBK转UTF-8编码.

func (*LkkString) GetDomain

func (ks *LkkString) GetDomain(str string, isMain ...bool) string

GetDomain 从URL字符串中获取域名. 可选参数isMain,默认为false,取完整域名;为true时,取主域名(如abc.test.com取test.com).

func (*LkkString) GetEquationValue added in v0.1.5

func (ks *LkkString) GetEquationValue(str, name string) (res string)

GetEquationValue 获取等式str中变量name的值.

func (*LkkString) Gravatar added in v0.0.7

func (ks *LkkString) Gravatar(email string, size uint16) string

Gravatar 获取Gravatar头像地址. email为邮箱;size为头像尺寸像素.

func (*LkkString) HasChinese

func (ks *LkkString) HasChinese(str string) bool

HasChinese 字符串是否含有中文.

func (*LkkString) HasEmoji added in v0.1.5

func (ks *LkkString) HasEmoji(str string) bool

HasEmoji 字符串是否含有表情符.

func (*LkkString) HasEnglish

func (ks *LkkString) HasEnglish(str string) bool

HasEnglish 是否含有英文字符,HasLetter的别名.

func (*LkkString) HasFullWidth

func (ks *LkkString) HasFullWidth(str string) bool

HasFullWidth 是否含有全角字符.

func (*LkkString) HasHalfWidth

func (ks *LkkString) HasHalfWidth(str string) bool

HasHalfWidth 是否含有半角字符.

func (*LkkString) HasLetter

func (ks *LkkString) HasLetter(str string) bool

HasLetter 字符串是否含有(英文)字母.

func (*LkkString) HasSpecialChar

func (ks *LkkString) HasSpecialChar(str string) bool

HasSpecialChar 字符串是否含有特殊字符.

func (*LkkString) HasWhitespace

func (ks *LkkString) HasWhitespace(str string) bool

HasWhitespace 是否带有空白字符.

func (*LkkString) HideCard

func (ks *LkkString) HideCard(card string) string

HideCard 隐藏证件号码.

func (*LkkString) HideMobile

func (ks *LkkString) HideMobile(mobile string) string

HideMobile 隐藏手机号.

func (*LkkString) HideTrueName

func (ks *LkkString) HideTrueName(name string) string

HideTrueName 隐藏真实名称(如姓名、账号、公司等).

func (*LkkString) Html2Text

func (ks *LkkString) Html2Text(str string) string

Html2Text 将html转换为纯文本.

func (*LkkString) Htmlentities

func (ks *LkkString) Htmlentities(str string) string

Htmlentities 将字符转换为 HTML 转义字符.

func (*LkkString) HtmlentityDecode

func (ks *LkkString) HtmlentityDecode(str string) string

HtmlentityDecode 将HTML实体转换为它们对应的字符.

func (*LkkString) HttpBuildQuery

func (ks *LkkString) HttpBuildQuery(queryData url.Values) string

HttpBuildQuery 根据参数生成 URL-encode 之后的请求字符串.

func (*LkkString) Img2Base64 added in v0.0.7

func (ks *LkkString) Img2Base64(content []byte, ext ...string) string

Img2Base64 将图片字节转换为base64字符串.ext为图片扩展名,默认jpg.

func (*LkkString) Index added in v0.0.7

func (ks *LkkString) Index(str, sub string, ignoreCase bool) int

Index 查找子串sub在字符串str中第一次出现的位置,不存在则返回-1; ignoreCase为是否忽略大小写.

func (*LkkString) IsASCII

func (ks *LkkString) IsASCII(str string) bool

IsASCII 是否ASCII字符串.

func (*LkkString) IsAlphaNumeric

func (ks *LkkString) IsAlphaNumeric(str string) bool

IsAlphaNumeric 是否字母或数字.

func (*LkkString) IsBase64

func (ks *LkkString) IsBase64(str string) bool

IsBase64 是否base64字符串.

func (*LkkString) IsBase64Image

func (ks *LkkString) IsBase64Image(str string) (chk bool, ext string)

IsBase64Image 是否base64编码的图片,并返回扩展名.

func (*LkkString) IsBlank added in v0.0.7

func (ks *LkkString) IsBlank(str string) bool

IsBlank 是否空(空白)字符串.

func (*LkkString) IsChinese

func (ks *LkkString) IsChinese(str string) bool

IsChinese 字符串是否全部中文.

func (*LkkString) IsChineseName

func (ks *LkkString) IsChineseName(str string) bool

IsChineseName 字符串是否中文名称.

func (*LkkString) IsCreditNo

func (ks *LkkString) IsCreditNo(str string) (bool, string)

IsCreditNo 检查是否(15或18位)身份证号码,并返回经校验的号码.

func (*LkkString) IsDNSName

func (ks *LkkString) IsDNSName(str string) bool

IsDNSName 是否DNS名称.

func (*LkkString) IsDialAddr added in v0.1.5

func (ks *LkkString) IsDialAddr(str string) bool

IsDialAddr 是否网络拨号地址(形如127.0.0.1:80),用于net.Dial()检查.

func (*LkkString) IsEmail

func (ks *LkkString) IsEmail(email string, validateHost bool) (bool, error)

IsEmail 检查字符串是否邮箱.参数validateTrue,是否验证邮箱主机的真实性.

func (*LkkString) IsEmpty added in v0.0.7

func (ks *LkkString) IsEmpty(str string) bool

IsEmpty 字符串是否为空(包括空格).

func (*LkkString) IsEnglish

func (ks *LkkString) IsEnglish(str string, letterCase LkkCaseSwitch) bool

IsEnglish 字符串是否纯英文.letterCase是否检查大小写,枚举值(CASE_NONE,CASE_LOWER,CASE_UPPER).

func (*LkkString) IsGbk added in v0.1.5

func (ks *LkkString) IsGbk(s []byte) (res bool)

IsGbk 字符串是否GBK编码.

func (*LkkString) IsHexColor added in v0.2.0

func (ks *LkkString) IsHexColor(str string) (bool, string)

IsHexColor 检查是否十六进制颜色,并返回带"#"的修正值.

func (*LkkString) IsHost

func (ks *LkkString) IsHost(str string) bool

IsHost 字符串是否主机名(IP或DNS名称).

func (*LkkString) IsIP

func (ks *LkkString) IsIP(str string) bool

IsIP 检查字符串是否IP地址.

func (*LkkString) IsIPv4

func (ks *LkkString) IsIPv4(str string) bool

IsIPv4 检查字符串是否IPv4地址.

func (*LkkString) IsIPv6

func (ks *LkkString) IsIPv6(str string) bool

IsIPv6 检查字符串是否IPv6地址.

func (*LkkString) IsJSON

func (ks *LkkString) IsJSON(str string) bool

IsJSON 字符串是否合法的json格式.

func (*LkkString) IsLetters

func (ks *LkkString) IsLetters(str string) bool

IsLetters 字符串是否全(英文)字母组成.

func (*LkkString) IsLower added in v0.0.7

func (ks *LkkString) IsLower(str string) bool

IsLower 字符串是否全部小写.

func (*LkkString) IsMACAddr

func (ks *LkkString) IsMACAddr(str string) bool

IsMACAddr 是否MAC物理网卡地址.

func (*LkkString) IsMd5 added in v0.0.7

func (ks *LkkString) IsMd5(str string) bool

IsMd5 是否md5值.

func (*LkkString) IsMobilecn added in v0.0.7

func (ks *LkkString) IsMobilecn(str string) bool

IsMobilecn 检查字符串是否中国大陆手机号.

func (*LkkString) IsMultibyte

func (ks *LkkString) IsMultibyte(str string) bool

IsMultibyte 字符串是否含有多字节字符.

func (*LkkString) IsNumeric added in v0.1.5

func (ks *LkkString) IsNumeric(str string) bool

IsNumeric 字符串是否数值(不包含复数和科学计数法).

func (*LkkString) IsPhone

func (ks *LkkString) IsPhone(str string) bool

IsPhone 是否电话号码(手机或固话).

func (*LkkString) IsRgbColor added in v0.2.0

func (ks *LkkString) IsRgbColor(str string) bool

IsRgbColor 检查字符串是否RGB颜色格式.

func (*LkkString) IsRsaPublicKey

func (ks *LkkString) IsRsaPublicKey(str string, keylen uint16) bool

IsRsaPublicKey 检查字符串是否RSA的公钥,keylen为密钥长度.

func (*LkkString) IsSha1 added in v0.0.7

func (ks *LkkString) IsSha1(str string) bool

IsSha1 是否Sha1值.

func (*LkkString) IsSha256 added in v0.0.7

func (ks *LkkString) IsSha256(str string) bool

IsSha256 是否Sha256值.

func (*LkkString) IsSha512 added in v0.0.7

func (ks *LkkString) IsSha512(str string) bool

IsSha512 是否Sha512值.

func (*LkkString) IsTel

func (ks *LkkString) IsTel(str string) bool

IsTel 是否固定电话或400/800电话.

func (*LkkString) IsUpper added in v0.0.7

func (ks *LkkString) IsUpper(str string) bool

IsUpper 字符串是否全部大写.

func (*LkkString) IsUrl

func (ks *LkkString) IsUrl(str string) bool

IsUrl 检查字符串是否URL.

func (*LkkString) IsUrlExists

func (ks *LkkString) IsUrlExists(str string) bool

IsUrlExists 检查URL是否存在.

func (*LkkString) IsUtf8

func (ks *LkkString) IsUtf8(s []byte) bool

IsUtf8 字符串是否UTF-8编码.

func (*LkkString) IsWhitespaces

func (ks *LkkString) IsWhitespaces(str string) bool

IsWhitespaces 是否全部空白字符,不包括空字符串.

func (*LkkString) IsWord added in v0.0.7

func (ks *LkkString) IsWord(str string) bool

IsWord 是否词语(不以下划线开头的中文、英文、数字、下划线).

func (*LkkString) JsonDecode

func (ks *LkkString) JsonDecode(str []byte, res interface{}) error

JsonDecode 对 JSON 格式的str字符串进行解码,注意res使用指针. 依赖库github.com/json-iterator/go.

func (*LkkString) JsonEncode

func (ks *LkkString) JsonEncode(val interface{}) ([]byte, error)

JsonEncode 对val变量进行 JSON 编码. 依赖库github.com/json-iterator/go.

func (*LkkString) Jsonp2Json added in v0.0.7

func (ks *LkkString) Jsonp2Json(str string) (string, error)

Jsonp2Json 将jsonp转为json串. Example: forbar({a:"1",b:2}) to {"a":"1","b":2}

func (*LkkString) LastIndex added in v0.0.7

func (ks *LkkString) LastIndex(str, sub string, ignoreCase bool) int

LastIndex 查找子串sub在字符串str中最后一次出现的位置,不存在则返回-1; ignoreCase为是否忽略大小写.

func (*LkkString) Lcfirst

func (ks *LkkString) Lcfirst(str string) string

Lcfirst 将字符串的第一个字符转换为小写.

func (*LkkString) Lcwords added in v0.0.7

func (ks *LkkString) Lcwords(str string) string

Lcwords 将字符串中每个词的首字母转换为小写.

func (*LkkString) Levenshtein

func (ks *LkkString) Levenshtein(a, b string) int

Levenshtein 计算两个字符串之间的编辑距离,返回值越小字符串越相似. 注意字符串最大长度为255.

func (*LkkString) Ltrim

func (ks *LkkString) Ltrim(str string, characterMask ...string) string

Ltrim 删除字符串开头的空白字符(或其他字符). characterMask为要修剪的字符.

func (*LkkString) MatchEquations added in v0.1.5

func (ks *LkkString) MatchEquations(str string) (res []string)

MatchEquations 匹配字符串中所有的等式.

func (*LkkString) MbStrlen

func (ks *LkkString) MbStrlen(str string) int

MbStrlen 获取宽字符串的长度,多字节的字符被计为 1.

func (*LkkString) MbSubstr

func (ks *LkkString) MbSubstr(str string, start int, length ...int) string

MbSubstr 返回(宽字符)字符串str的子串. start 为起始位置.若值是负数,返回的结果将从 str 结尾处向前数第 abs(start) 个字符开始. length 为截取的长度.若值时负数, str 末尾处的 abs(length) 个字符将会被省略. start/length的绝对值必须<=原字符串长度.

func (*LkkString) Md5

func (ks *LkkString) Md5(str string, length ...uint8) string

Md5 获取字符串md5值. length指定结果长度,默认32.

func (*LkkString) Md5Byte added in v0.1.2

func (ks *LkkString) Md5Byte(str []byte, length ...uint8) []byte

Md5Byte 获取字节切片md5值. length指定结果长度,默认32.

func (*LkkString) Nl2br

func (ks *LkkString) Nl2br(str string) string

Nl2br 将换行符转换为br标签.

func (*LkkString) Ord

func (ks *LkkString) Ord(char string) rune

Ord 将首字符转换为rune(ASCII值). 注意:当字符串为空时返回65533.

func (*LkkString) ParseStr

func (ks *LkkString) ParseStr(encodedString string, result map[string]interface{}) error

ParseStr 将URI查询字符串转换为字典.

func (*LkkString) ParseUrl

func (ks *LkkString) ParseUrl(str string, component int16) (map[string]string, error)

ParseUrl 解析URL,返回其组成部分. component为需要返回的组成; -1: all; 1: scheme; 2: host; 4: port; 8: user; 16: pass; 32: path; 64: query(在问号 ? 之后 ); 128: fragment(在注释符号 # 之后 ) .

func (*LkkString) PasswordSafeLevel added in v0.3.0

func (ks *LkkString) PasswordSafeLevel(str string) (res uint8)

PasswordSafeLevel 检查密码安全等级;为0 极弱,为1 弱,为2 一般,为3 很好,为4 极佳.

func (*LkkString) Quotemeta

func (ks *LkkString) Quotemeta(str string) string

Quotemeta 转义元字符集,包括 . \ + * ? [ ^ ] ( $ )等.

func (*LkkString) Random

func (ks *LkkString) Random(length uint8, rtype LkkRandString) string

Random 生成随机字符串. length为长度,rtype为枚举: RAND_STRING_ALPHA 字母; RAND_STRING_NUMERIC 数值; RAND_STRING_ALPHANUM 字母+数值; RAND_STRING_SPECIAL 字母+数值+特殊字符; RAND_STRING_CHINESE 仅中文.

func (*LkkString) RawUrlDecode added in v0.1.5

func (ks *LkkString) RawUrlDecode(str string) (string, error)

RawUrlDecode 对已编码的 URL 字符串进行解码.

func (*LkkString) RawUrlEncode added in v0.1.5

func (ks *LkkString) RawUrlEncode(str string) string

RawUrlEncode 按照 RFC 3986 对 URL 进行编码.

func (*LkkString) RemoveAfter

func (ks *LkkString) RemoveAfter(str, after string, include, ignoreCase bool) string

RemoveAfter 移除after之后的字符串; include为是否移除包括after本身; ignoreCase为是否忽略大小写.

func (*LkkString) RemoveBefore

func (ks *LkkString) RemoveBefore(str, before string, include, ignoreCase bool) string

RemoveBefore 移除before之前的字符串; include为是否移除包括before本身; ignoreCase为是否忽略大小写.

func (*LkkString) RemoveEmoji added in v0.0.7

func (ks *LkkString) RemoveEmoji(str string) string

RemoveEmoji 移除字符串中的表情符(使用正则,效率较低).

func (*LkkString) RemoveSpace

func (ks *LkkString) RemoveSpace(str string, all bool) string

RemoveSpace 移除字符串中的空白字符. all为true时移除全部空白,为false时只替换连续的空白字符为一个空格.

func (*LkkString) Reverse added in v0.0.7

func (ks *LkkString) Reverse(str string) string

Reverse 反转字符串.

func (*LkkString) Rtrim

func (ks *LkkString) Rtrim(str string, characterMask ...string) string

Rtrim 删除字符串末端的空白字符(或者其他字符). characterMask为要修剪的字符.

func (*LkkString) SBC2DBC

func (ks *LkkString) SBC2DBC(s string) string

SBC2DBC 全角转半角.

func (*LkkString) Serialize added in v0.1.1

func (ks *LkkString) Serialize(val interface{}) ([]byte, error)

Serialize 对变量进行序列化.

func (*LkkString) ShaX

func (ks *LkkString) ShaX(str string, x uint16) string

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

func (*LkkString) ShaXByte added in v0.1.2

func (ks *LkkString) ShaXByte(str []byte, x uint16) []byte

ShaXByte 计算字节切片的 shaX 散列值,x为1/256/512 .

func (*LkkString) Shuffle added in v0.0.7

func (ks *LkkString) Shuffle(str string) string

Shuffle 随机打乱字符串.

func (*LkkString) SimilarText

func (ks *LkkString) SimilarText(first, second string) (res int, percent float64)

SimilarText 计算两个字符串的相似度;返回在两个字符串中匹配字符的数目,以及相似程度百分数.

func (*LkkString) StartsWith added in v0.0.7

func (ks *LkkString) StartsWith(str, sub string, ignoreCase bool) bool

StartsWith 字符串str是否以sub开头.

func (*LkkString) StartsWiths added in v0.1.5

func (ks *LkkString) StartsWiths(str string, subs []string, ignoreCase bool) (res bool)

StartsWiths 字符串str是否以subs其中之一为开头.

func (*LkkString) StrOffset added in v0.3.5

func (ks *LkkString) StrOffset(str string, num int) string

StrOffset 字符串整体偏移.

func (*LkkString) StripTags

func (ks *LkkString) StripTags(str string) string

StripTags 过滤html标签.

func (*LkkString) Stripos

func (ks *LkkString) Stripos(haystack, needle string, offset int) int

Stripos 查找字符串首次出现的位置(不区分大小写),找不到时返回-1. haystack在该字符串中进行查找,needle要查找的字符串; offset起始位置,为负数时时,搜索会从字符串结尾指定字符数开始.

func (*LkkString) Stripslashes

func (ks *LkkString) Stripslashes(str string) string

Stripslashes 反引用一个引用字符串.

func (*LkkString) Strlen

func (ks *LkkString) Strlen(str string) int

Strlen 获取字符串长度.

func (*LkkString) Strpad

func (ks *LkkString) Strpad(str string, fill string, max int, ptype LkkPadType) string

Strpad 使用fill填充str字符串到指定长度max. ptype为填充类型,枚举值(PAD_LEFT,PAD_RIGHT,PAD_BOTH).

func (*LkkString) StrpadBoth

func (ks *LkkString) StrpadBoth(str string, fill string, max int) string

StrpadBoth 字符串两侧填充,请参考Strpad.

func (*LkkString) StrpadLeft

func (ks *LkkString) StrpadLeft(str string, fill string, max int) string

StrpadLeft 字符串左侧填充,请参考Strpad.

func (*LkkString) StrpadRight

func (ks *LkkString) StrpadRight(str string, fill string, max int) string

StrpadRight 字符串右侧填充,请参考Strpad.

func (*LkkString) Strpos

func (ks *LkkString) Strpos(haystack, needle string, offset int) int

Strpos 查找字符串首次出现的位置,找不到时返回-1. haystack在该字符串中进行查找,needle要查找的字符串; offset起始位置,为负数时时,搜索会从字符串结尾指定字符数开始.

func (*LkkString) Strripos

func (ks *LkkString) Strripos(haystack, needle string, offset int) int

Strripos 查找指定字符串在目标字符串中最后一次出现的位置(不区分大小写).

func (*LkkString) Strrpos

func (ks *LkkString) Strrpos(haystack, needle string, offset int) int

Strrpos 查找指定字符串在目标字符串中最后一次出现的位置.

func (*LkkString) Substr

func (ks *LkkString) Substr(str string, start int, length ...int) string

Substr 截取字符串str的子串. start 为起始位置.若值是负数,返回的结果将从 str 结尾处向前数第 abs(start) 个字符开始. length 为截取的长度.若值时负数, str 末尾处的 abs(length) 个字符将会被省略. start/length的绝对值必须<=原字符串长度.

func (*LkkString) SubstrCount

func (ks *LkkString) SubstrCount(str, substr string) int

SubstrCount 计算子串substr在字符串str中出现的次数,区分大小写.

func (*LkkString) SubstriCount added in v0.1.5

func (ks *LkkString) SubstriCount(str, substr string) int

SubstriCount 计算子串substr在字符串str中出现的次数,忽略大小写.

func (*LkkString) ToCamelCase added in v0.0.7

func (ks *LkkString) ToCamelCase(str string) string

ToCamelCase 转为驼峰写法. 去掉包括下划线"_"和横杠"-".

func (*LkkString) ToKebabCase added in v0.0.7

func (ks *LkkString) ToKebabCase(str string) string

ToKebabCase 转为串形写法. 使用横杠"-"连接.

func (*LkkString) ToRunes added in v0.2.0

func (ks *LkkString) ToRunes(str string) []rune

ToRunes 将字符串转为字符切片.

func (*LkkString) ToSnakeCase added in v0.0.7

func (ks *LkkString) ToSnakeCase(str string) string

ToSnakeCase 转为蛇形写法. 使用下划线"_"连接.

func (*LkkString) Trim

func (ks *LkkString) Trim(str string, characterMask ...string) string

Trim 去除字符串首尾处的空白字符(或者其他字符). characterMask为要修剪的字符.

func (*LkkString) TrimBOM added in v0.1.1

func (ks *LkkString) TrimBOM(str []byte) []byte

TrimBOM 移除字符串中的BOM

func (*LkkString) Ucfirst

func (ks *LkkString) Ucfirst(str string) string

Ucfirst 将字符串的第一个字符转换为大写.

func (*LkkString) Ucwords added in v0.0.7

func (ks *LkkString) Ucwords(str string) string

Ucwords 将字符串中每个词的首字母转换为大写.

func (*LkkString) UnSerialize added in v0.1.1

func (ks *LkkString) UnSerialize(data []byte, register ...interface{}) (val interface{}, err error)

UnSerialize 对字符串进行反序列化. 其中register注册对象,其类型必须和Serialize的一致.

func (*LkkString) Uniqid

func (ks *LkkString) Uniqid(prefix string) string

Uniqid 获取一个带前缀的唯一ID(24位). prefix 为前缀字符串.

func (*LkkString) UrlDecode

func (ks *LkkString) UrlDecode(str string) (string, error)

UrlDecode 解码已编码的 URL 字符串.

func (*LkkString) UrlEncode

func (ks *LkkString) UrlEncode(str string) string

UrlEncode 编码 URL 字符串.

func (*LkkString) Utf8ToBig5

func (ks *LkkString) Utf8ToBig5(s []byte) ([]byte, error)

Utf8ToBig5 UTF-8转BIG5编码.

func (*LkkString) Utf8ToGbk

func (ks *LkkString) Utf8ToGbk(s []byte) ([]byte, error)

Utf8ToGbk UTF-8转GBK编码.

func (*LkkString) UuidV4 added in v0.0.7

func (ks *LkkString) UuidV4() (string, error)

UuidV4 获取36位UUID(Version4,RFC4122).

func (*LkkString) UuidV5 added in v0.2.3

func (ks *LkkString) UuidV5(name, namespace []byte) (string, error)

UuidV5 根据提供的字符,使用sha1生成36位哈希值(Version5,RFC4122); name为要计算散列值的字符,可以为nil; namespace为命名空间,长度必须为16.

func (*LkkString) VersionCompare

func (ks *LkkString) VersionCompare(version1, version2, operator string) (bool, error)

VersionCompare 对比两个版本号字符串. operator允许的操作符有: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne . 特定的版本字符串,将会用以下顺序处理: 无 < dev < alpha = a < beta = b < RC = rc < # < pl = p < ga < release = r 用法: VersionCompare("1.2.3-alpha", "1.2.3RC7", '>=') ; VersionCompare("1.2.3-beta", "1.2.3pl", 'lt') ; VersionCompare("1.1_dev", "1.2any", 'eq') .

type LkkTime

type LkkTime struct {
}

LkkTime is the receiver of time utilities

func (*LkkTime) CheckDate

func (kt *LkkTime) CheckDate(year, month, day int) bool

CheckDate 检查是否正常的日期.

func (*LkkTime) Date

func (kt *LkkTime) Date(format string, ts ...interface{}) string

Date 格式化时间. format 格式,如"Y-m-d H:i:s". ts为int/int64类型时间戳或time.Time类型.

func (*LkkTime) Day added in v0.0.7

func (kt *LkkTime) Day(t ...time.Time) int

Day 获取日份.

func (*LkkTime) DaysBetween added in v0.0.7

func (kt *LkkTime) DaysBetween(fromDate, toDate time.Time) int

DaysBetween 获取两个日期的间隔天数. fromDate 为开始时间,toDate 为终点时间.

func (*LkkTime) EndOfDay added in v0.0.7

func (kt *LkkTime) EndOfDay(date time.Time) time.Time

EndOfDay 获取日期中当天的结束时间.

func (*LkkTime) EndOfMonth added in v0.0.7

func (kt *LkkTime) EndOfMonth(date time.Time) time.Time

EndOfMonth 获取日期中当月的结束时间.

func (*LkkTime) EndOfWeek added in v0.0.7

func (kt *LkkTime) EndOfWeek(date time.Time, weekStartDay ...time.Weekday) time.Time

EndOfWeek 获取日期中当周的结束时间; weekStartDay 周几作为周的第一天,本库默认周一.

func (*LkkTime) EndOfYear added in v0.0.7

func (kt *LkkTime) EndOfYear(date time.Time) time.Time

EndOfYear 获取日期中当年的结束时间.

func (*LkkTime) FormatDuration added in v0.4.5

func (kt *LkkTime) FormatDuration(t interface{}, colon bool) string

FormatDuration 格式化时长为字符串(如*h*m*s);其中t为时长,默认为秒;colon为是否使用冒号.

func (*LkkTime) GetMonthDays

func (kt *LkkTime) GetMonthDays(month int, year ...int) (days int)

GetMonthDays 获取指定月份的天数.year年份,可选,默认当前年份.

func (*LkkTime) Hour added in v0.0.7

func (kt *LkkTime) Hour(t ...time.Time) int

Hour 获取小时.

func (*LkkTime) IsDate2time

func (kt *LkkTime) IsDate2time(str string, option ...TimeOption) (bool, int64)

IsDate2time 检查字符串是否日期格式,并转换为时间戳.注意,时间戳可能为负数(小于1970年时). option 为时间选项TimeOption,默认为本地时区. 匹配如:

0000
0000-00
0000/00
0000-00-00
0000/00/00
0000-00-00 00
0000/00/00 00
0000-00-00 00:00
0000/00/00 00:00
0000-00-00 00:00:00
0000/00/00 00:00:00

等日期格式.

func (*LkkTime) MicroTime

func (kt *LkkTime) MicroTime() int64

MicroTime 获取当前Unix时间戳(微秒,16位).

func (*LkkTime) MilliTime

func (kt *LkkTime) MilliTime() int64

MilliTime 获取当前Unix时间戳(毫秒,13位).

func (*LkkTime) Minute added in v0.0.7

func (kt *LkkTime) Minute(t ...time.Time) int

Minute 获取分钟.

func (*LkkTime) Month added in v0.0.7

func (kt *LkkTime) Month(t ...time.Time) int

Month 获取月份.

func (*LkkTime) Second added in v0.0.7

func (kt *LkkTime) Second(t ...time.Time) int

Second 获取秒数.

func (*LkkTime) ServiceStartime

func (kt *LkkTime) ServiceStartime() int64

ServiceStartime 获取当前服务启动时间戳,秒.

func (*LkkTime) ServiceUptime

func (kt *LkkTime) ServiceUptime() time.Duration

ServiceUptime 获取当前服务运行时间,纳秒int64.

func (*LkkTime) Sleep

func (kt *LkkTime) Sleep(t int64)

Sleep 延缓执行,秒.

func (*LkkTime) StartOfDay added in v0.0.7

func (kt *LkkTime) StartOfDay(date time.Time) time.Time

StartOfDay 获取日期中当天的开始时间.

func (*LkkTime) StartOfMonth added in v0.0.7

func (kt *LkkTime) StartOfMonth(date time.Time) time.Time

StartOfMonth 获取日期中当月的开始时间.

func (*LkkTime) StartOfWeek added in v0.0.7

func (kt *LkkTime) StartOfWeek(date time.Time, weekStartDay ...time.Weekday) time.Time

StartOfWeek 获取日期中当周的开始时间; weekStartDay 周几作为周的第一天,本库默认周一.

func (*LkkTime) StartOfYear added in v0.0.7

func (kt *LkkTime) StartOfYear(date time.Time) time.Time

StartOfYear 获取日期中当年的开始时间.

func (*LkkTime) Str2Timestamp added in v0.0.7

func (kt *LkkTime) Str2Timestamp(str string, option ...TimeOption) (int64, error)

Str2Timestamp 将字符串转换为时间戳(默认为本地时区),秒. str 为要转换的字符串; option 为时间选项TimeOption.

func (*LkkTime) Str2Timestruct added in v0.0.7

func (kt *LkkTime) Str2Timestruct(str string, option ...TimeOption) (res time.Time, err error)

Str2Timestruct 将字符串转换为时间结构,默认为本地时区. str 为要转换的字符串; option 为时间选项TimeOption.

func (*LkkTime) UnixTime added in v0.0.7

func (kt *LkkTime) UnixTime() int64

UnixTime 获取当前Unix时间戳(秒,10位).

func (*LkkTime) Usleep

func (kt *LkkTime) Usleep(t int64)

Usleep 以指定的微秒数延迟执行.

func (*LkkTime) Year added in v0.0.7

func (kt *LkkTime) Year(t ...time.Time) int

Year 获取年份.

type SystemInfo

type SystemInfo struct {
	ServerName   string  `json:"server_name"`    //服务器名称
	SystemArch   string  `json:"system_arch"`    //系统架构
	SystemOs     string  `json:"system_os"`      //操作系统名称
	Runtime      uint64  `json:"run_time"`       //服务运行时间,纳秒
	Uptime       uint64  `json:"up_time"`        //操作系统运行时间,秒
	GoroutineNum int     `json:"goroutine_num"`  //goroutine数量
	CpuNum       int     `json:"cpu_num"`        //cpu核数
	CpuUser      float64 `json:"cpu_user"`       //cpu用户态比率
	CpuFree      float64 `json:"cpu_free"`       //cpu空闲比率
	DiskUsed     uint64  `json:"disk_used"`      //已用磁盘空间,字节数
	DiskFree     uint64  `json:"disk_free"`      //可用磁盘空间,字节数
	DiskTotal    uint64  `json:"disk_total"`     //总磁盘空间,字节数
	MemUsed      uint64  `json:"mem_used"`       //已用内存,字节数
	MemSys       uint64  `json:"mem_sys"`        //系统内存占用量,字节数
	MemFree      uint64  `json:"mem_free"`       //剩余内存,字节数
	MemTotal     uint64  `json:"mem_total"`      //总内存,字节数
	AllocGolang  uint64  `json:"alloc_golang"`   //golang内存使用量,字节数
	AllocTotal   uint64  `json:"alloc_total"`    //总分配的内存,字节数
	Lookups      uint64  `json:"lookups"`        //指针查找次数
	Mallocs      uint64  `json:"mallocs"`        //内存分配次数
	Frees        uint64  `json:"frees"`          //内存释放次数
	LastGCTime   uint64  `json:"last_gc_time"`   //上次GC时间,纳秒
	NextGC       uint64  `json:"next_gc"`        //下次GC内存回收量,字节数
	PauseTotalNs uint64  `json:"pause_total_ns"` //GC暂停时间总量,纳秒
	PauseNs      uint64  `json:"pause_ns"`       //上次GC暂停时间,纳秒
}

SystemInfo 系统信息

type TimeOption added in v0.4.7

type TimeOption struct {
	IsUTC    bool           //是否UTC
	Layout   string         //时间格式
	Zone     string         //时区名称
	Location *time.Location //本地化
}

Jump to

Keyboard shortcuts

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