Utils is a go language development toolkit that mainly includes functions such as string, slice, map, time, type judgment, type conversion, and data compression.
Installing utils
go get github.com/kirinlabs/utils
How to use utils?
Public
import "github.com/kirinlabs/utils" utils.Empty(arg interface{}) bool utils.Export(arg interface{}) string utils.Json(arg interface{}) string utils.Decode(s string) error utils.Unmarshal(s string, args ...interface{}) interface{} utils.Type(arg interface{}) string utils.IsInt(arg interface{}) bool utils.IsInt64(arg interface{}) bool utils.IsFloat64(arg interface{}) bool utils.IsString(arg interface{}) bool utils.IsTime(arg interface{}) bool utils.IsBool(arg interface{}) bool utils.IsSlice(arg interface{}) bool
String
import "github.com/kirinlabs/utils/str" s := "hello github" str.Before(s, "github") str.BeforeLast(s, "github") str.After(s, "git") str.AfterLast(s, "git") str.StartsWith(s, "hel") str.EndsWitdh(s, "b") str.RuneIndex(s,"github") str.Substr(s, 2, 3) str.Char(s) str.Escape(s) str.Contians(s, "hub") str.StartsWith(s, "hel") str.EndsWitdh(s, "b") str.String(i interface{}) str.Length(s) str.Ufirst(s)
Slice
import "github.com/kirinlabs/utils/sli" sli.InSlice(v interface{}, s interface{}) bool sli.InInterface(v interface{}, sl []interface{}) bool sli.Slice(iface interface{}) ([]interface{}, error) sli.Unique(list *[]string) []string sli.UniqueInt(list *[]int) []int sli.UniqueInt64(list *[]int64) []int64 sli.Chunk(slice []interface{}, size int) (chunk [][]interface{}) sli.Range(start, end, step int64) (intslice []int64) sli.Pad(slice []interface{}, size int, val interface{}) []interface{} sli.Shuffle(slice []interface{}) []interface{} sli.Diff(slice1, slice2 []string) (diffslice []string) sli.Intersect(slice1, slice2 []string) (interSlice []string) sli.Reverse(list *[]string) []string sli.ReverseInt(list *[]int) []int sli.ReverseInt64(list *[]int64) []int64 sli.ReverseFloat(list *[]float64) []float64 sli.Rand(a []string) (b string) sli.RandInt(a []int) (b int) sli.RandInt64(a []int64) (b int64) sli.Sum(i []int64) (s int64) sli.Range(start, end, step int64) (intslice []int64) sli.JoinInt(s []int,sep ...string) string sli.SplitInt(str string, sep ...string) ([]int, error)
Convert
import "github.com/kirinlabs/utils/convert" convert.Int(v interface{}) (int64, error) convert.Float(v interface{}) (float64, error) convert.Bool(bs []byte) (bool, error) convert.Bytes(buf []byte, val reflect.Value) (b []byte, ok bool) convert.String(iface interface{}) string convert.Kind(vv reflect.Value, tp reflect.Type) (interface{}, error)
Datetime
import "github.com/kirinlabs/utils/datetime" datetime.Gmtime() string datetime.Localtime() string datetime.Strtotime(s string, args ...string) (time.Time, error) datetime.String(format ...string) string datetime.Year(t ...time.Time) int datetime.Month(t ...time.Time) int datetime.Day(t ...time.Time) int datetime.YearDay(t ...time.Time) int datetime.Hour(t ...time.Time) int datetime.Minute(t ...time.Time) int datetime.Second(t ...time.Time) int datetime.Millisecond() int64 datetime.Microsecond() int64 datetime.Nanosecond() int64 datetime.Timestamp(args ...string) int64
Encrypt
import "github.com/kirinlabs/utils/encrypt" encrypt.Md5(s string) string encrypt.Sha1(s string) string encrypt.Sha256(s string) string encrypt.Sha512(s string) string encrypt.Base64Encode(s string) string encrypt.Base64Decode(s string) string
sys
import "github.com/kirinlabs/utils/sys" sys.RealPath(f string) string sys.IsExists(path string) bool sys.IsFile(f string) bool sys.IsDir(p string) bool