Documentation
¶
Index ¶
- func AppendStrInt(sb *strings.Builder, x int)
- func AppendStrInt32(sb *strings.Builder, x int32)
- func AppendStrInt64(sb *strings.Builder, x int64)
- func AppendStrUInt(sb *strings.Builder, x uint)
- func AppendStrUInt32(sb *strings.Builder, x uint32)
- func AppendStrUInt64(sb *strings.Builder, x uint64)
- func B2S(bts []byte) string
- func ByteToStr(bts []byte) string
- func CPUTicks() int64
- func CloneBytes(b []byte) []byte
- func CloneStr(s string) string
- func CopyFile(srcFile, dstFile string) error
- func CopyFileWithBuffer(srcFile, dstFile string, buf []byte) error
- func FastRand() uint32
- func Filter[T any](match func(src T) bool, tt []T) []T
- func Float32ToStr(x float32) string
- func Float64ToStr(x float64) string
- func GetExecDir() string
- func GetExecName() string
- func Int32ToStr(x int32) string
- func Int64ToStr(x int64) string
- func IntToStr(x int) string
- func Map[S, D any](transformer func(src S) D, ss []S) []D
- func MapToArray[K comparable, V any](s map[K]V) []V
- func Must[T any](src T, err error) T
- func MustSha256(in, out []byte) []byte
- func MustSha512(in, out []byte) []byte
- func NanoTime() int64
- func Paginate[T any](arr []T, pageSize int, fn func(start, end int) error) error
- func PtrVal[T any](src *T) T
- func RandomDigit(n int) string
- func RandomID(n int) string
- func RandomIDs(n ...int) []string
- func RandomInt(n int) (x int)
- func RandomInt32(n int32) (x int32)
- func RandomInt64(n int64) (x int64)
- func RandomUint64(n uint64) (x uint64)
- func ReadYamlFile(filePath string, data any) error
- func Reduce[T, R any](reducer func(r R, t T) R, tt []T) R
- func S2B(str string) []byte
- func SecureRandomInt63(n int64) (x int64)
- func SecureRandomUint64() (x uint64)
- func Sha256(in, out []byte) ([]byte, error)
- func Sha512(in, out []byte) ([]byte, error)
- func StrToByte(str string) (b []byte)
- func StrToFloat32(s string) float32
- func StrToFloat64(s string) float64
- func StrToInt(s string) int
- func StrToInt32(s string) int32
- func StrToInt64(s string) int64
- func StrToUInt(s string) uint
- func StrToUInt32(s string) uint32
- func StrToUInt64(s string) uint64
- func StrTruncate(s string, maxSize int) string
- func TimeUnix() int64
- func TimeUnixSubtract(unixTime int64, d time.Duration) int64
- func ToCamel(s string) string
- func ToDelimited(s string, delimiter uint8) string
- func ToKebab(s string) string
- func ToLowerCamel(s string) string
- func ToScreamingDelimited(s string, delimiter uint8, ignore uint8, screaming bool) string
- func ToScreamingKebab(s string) string
- func ToScreamingSnake(s string) string
- func ToSnake(s string) string
- func ToSnakeWithIgnore(s string, ignore uint8) string
- func UInt32ToStr(x uint32) string
- func UInt64ToStr(x uint64) string
- func ValPtr[T any](src T) *T
- func ValPtrOrNil[T comparable](src T) *T
- func WriteYamlFile(filePath string, data any) error
- type LinkedList
- func (ll *LinkedList) Append(data any)
- func (ll *LinkedList) Get(index int32) (n *Node)
- func (ll *LinkedList) Head() *Node
- func (ll *LinkedList) PickHeadData() any
- func (ll *LinkedList) PickTailData() any
- func (ll *LinkedList) Prepend(data any)
- func (ll *LinkedList) RemoveAt(index int32)
- func (ll *LinkedList) Reset()
- func (ll *LinkedList) Size() int32
- func (ll *LinkedList) String() string
- func (ll *LinkedList) Tail() *Node
- type Node
- type Numeric
- type SpinLock
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendStrInt ¶
func AppendStrInt32 ¶
func AppendStrInt64 ¶
func AppendStrUInt ¶
func AppendStrUInt32 ¶
func AppendStrUInt64 ¶
func ByteToStr ¶
ByteToStr converts byte slice to a string without memory allocation. Note it may break if string and/or slice header will change in the future go versions.
func CPUTicks ¶
func CPUTicks() int64
CPUTicks is a faster alternative to NanoTime to measure time duration.
func CloneBytes ¶ added in v0.10.24
func CopyFileWithBuffer ¶ added in v0.10.19
func Filter ¶ added in v0.11.17
Filter returns a new slice containing only the elements in tt for which the match function returns true.
type User struct { Name string Age int Active bool } var users = []User{ {"Tom", 20, true}, {"Jack", 22, false}, {"Mary", 18, true}, } var activeUsers = qkit.Filter(func(u User) bool { return u.Active }, users)
fmt.Println(activeUsers)
Playground: https://go.dev/play/p/70YOKRs79OF
func Float32ToStr ¶ added in v0.10.24
func Float64ToStr ¶ added in v0.10.24
func GetExecDir ¶ added in v0.10.19
func GetExecDir() string
func GetExecName ¶ added in v0.10.19
func GetExecName() string
func Int32ToStr ¶
func Int64ToStr ¶
func Map ¶ added in v0.11.17
func Map[S, D any](transformer func(src S) D, ss []S) []D
Map applies the transformer function to each element of the slice ss. The result is a slice of the same length as ss, where the kth element is transformer(ss[k]).
type User struct { Name string Age int } var users = []User{ {"Tom", 20}, {"Jack", 22}, {"Mary", 18}, } var names = qkit.Map(func(u User) string { return u.Name }, users)
fmt.Println(names)
Playground: https://go.dev/play/p/wKIa32-rMDn
func MapToArray ¶ added in v0.11.17
func MapToArray[K comparable, V any](s map[K]V) []V
func MustSha256 ¶
func MustSha512 ¶
MustSha512 is Sha512 but it panics if any error happens
func NanoTime ¶
func NanoTime() int64
NanoTime returns the current time in nanoseconds from a monotonic clock.
func Paginate ¶ added in v0.11.17
Paginate will call the given function with start and end indexes for a slice of the given size.
type User struct { Name string Age int } var users = []User{ {"Tom", 20}, {"Jack", 22}, {"Mary", 18}, {"Tommy", 20}, {"Lin", 22}, } qkit.Paginate(users, 2, func(start, end int) error { fmt.Println(users[start:end]) return nil })
Playground: https://go.dev/play/p/aDiVJEKjgwW
func RandomDigit ¶
RandomDigit generates a pseudo-random string with length 'n' which characters are only digits (0-9)
func RandomID ¶
RandomID generates a pseudo-random string with length 'n' which characters are alphanumerics.
func RandomInt32 ¶
RandomInt32 produces a pseudo-random 31bit number, if n == 0 there will be no limit otherwise the output will be smaller than n
func RandomInt64 ¶
RandomInt64 produces a pseudo-random 63bit number, if n == 0 there will be no limit otherwise the output will be smaller than n
func RandomUint64 ¶
RandomUint64 produces a pseudo-random unsigned number
func ReadYamlFile ¶ added in v0.10.19
func Reduce ¶ added in v0.11.17
func Reduce[T, R any](reducer func(r R, t T) R, tt []T) R
Reduce [T, R] reduces the slice tt to a single value r using the reducer function. The reducer function takes the current reduced value r and the current slice value t and returns a new reduced value.
type User struct { Name string Age int } var users = []User{ {"Tom", 20}, {"Jack", 22}, {"Mary", 18}, } var totalAge = qkit.Reduce(func(r int, u User) int { return r + u.Age }, users)
fmt.Println(totalAge)
Playground: https://go.dev/play/p/gf9evzMIMIK
func SecureRandomInt63 ¶
SecureRandomInt63 produces a secure pseudo-random 63bit number
func SecureRandomUint64 ¶
func SecureRandomUint64() (x uint64)
SecureRandomUint64 produces a secure pseudo-random 64bit number
func StrToByte ¶
StrToByte converts string to a byte slice without memory allocation. Note it may break if string and/or slice header will change in the future go versions.
func StrToFloat32 ¶
func StrToFloat64 ¶
func StrToInt32 ¶
func StrToInt64 ¶
func StrToUInt32 ¶
func StrToUInt64 ¶
func StrTruncate ¶ added in v0.9.26
func ToDelimited ¶
ToDelimited converts a string to delimited.snake.case (in this case `delimiter = '.'`)
func ToLowerCamel ¶
ToLowerCamel converts a string to lowerCamelCase
func ToScreamingDelimited ¶
ToScreamingDelimited converts a string to SCREAMING.DELIMITED.SNAKE.CASE (in this case `delimiter = '.'; screaming = true`) or delimited.snake.case (in this case `delimiter = '.'; screaming = false`)
func ToScreamingKebab ¶
ToScreamingKebab converts a string to SCREAMING-KEBAB-CASE
func ToScreamingSnake ¶
ToScreamingSnake converts a string to SCREAMING_SNAKE_CASE
func ToSnakeWithIgnore ¶
func UInt32ToStr ¶
func UInt64ToStr ¶
func ValPtrOrNil ¶ added in v0.11.17
func ValPtrOrNil[T comparable](src T) *T
func WriteYamlFile ¶ added in v0.10.19
Types ¶
type LinkedList ¶
type LinkedList struct {
// contains filtered or unexported fields
}
func NewLinkedList ¶
func NewLinkedList() *LinkedList
func (*LinkedList) Append ¶
func (ll *LinkedList) Append(data any)
func (*LinkedList) Get ¶
func (ll *LinkedList) Get(index int32) (n *Node)
func (*LinkedList) Head ¶
func (ll *LinkedList) Head() *Node
func (*LinkedList) PickHeadData ¶
func (ll *LinkedList) PickHeadData() any
func (*LinkedList) PickTailData ¶
func (ll *LinkedList) PickTailData() any
func (*LinkedList) Prepend ¶
func (ll *LinkedList) Prepend(data any)
func (*LinkedList) RemoveAt ¶
func (ll *LinkedList) RemoveAt(index int32)
func (*LinkedList) Reset ¶
func (ll *LinkedList) Reset()
func (*LinkedList) Size ¶
func (ll *LinkedList) Size() int32
func (*LinkedList) String ¶
func (ll *LinkedList) String() string
func (*LinkedList) Tail ¶
func (ll *LinkedList) Tail() *Node
type Numeric ¶ added in v0.9.13
type Numeric struct {
// contains filtered or unexported fields
}
Numeric represents float64 number which is decodable from string, int or float. It's useful when a struct field should be numeric but form of the data being decoded from is unknown or variable.
func ParseNumeric ¶ added in v0.9.13
ParseNumeric converts int, string, float to Numeric.
func (Numeric) MarshalJSON ¶ added in v0.10.27
func (*Numeric) UnmarshalJSON ¶ added in v0.9.13
func (Numeric) WithPrecision ¶ added in v0.9.13
func (Numeric) WithoutPrecision ¶ added in v0.9.13
type SpinLock ¶
type SpinLock struct {
// contains filtered or unexported fields
}
SpinLock is a spinlock implementation.
A SpinLock must not be copied after first use. This SpinLock intended to be used to synchronize exceptionally short-lived operations.