Documentation ¶
Overview ¶
Package com is an open source project for commonly used functions for the Go programming language.
Index ¶
- Constants
- Variables
- func AESGCMDecrypt(key, ciphertext []byte) ([]byte, error)
- func AESGCMEncrypt(key, plaintext []byte) ([]byte, error)
- func AddDaysForCurrent(days int) time.Time
- func AddHoursForCurrent(hours int) time.Time
- func AddMinutesForCurrent(minutes int) time.Time
- func AorB(condition bool, a, b string) string
- func AppendStr(strs []string, str string) []string
- func Base64Decode(str string) (string, error)
- func Base64Encode(str string) string
- func Br2String(source string) string
- func ColorLog(format string, a ...interface{})
- func ColorLogS(format string, a ...interface{}) string
- func Command(cmd string, args ...string) (string, error)
- func CompareSliceStr(s1, s2 []string) bool
- func CompareSliceStrU(s1, s2 []string) bool
- func CompareVersion(src, toCompare string) bool
- func CompressedHTML(h *template.HTML)
- func Copy(src, dest string) error
- func CopyDir(srcPath, destPath string, filters ...func(filePath string) bool) error
- func CopyMap(m map[string]string) map[string]string
- func CurrentTimeToString(args ...interface{}) string
- func Date(ti int64, format string) string
- func DateParse(dateString, format string) (time.Time, error)
- func DateS(ts string, format string) string
- func DateT(t time.Time, format string) string
- func DateToIntSlice(date time.Time) []int
- func DateToStringSlice(date time.Time) []string
- func DateToUnixNanoTimestamp(date time.Time) int64
- func DateToUnixTimestamp(date time.Time) int64
- func DatetimeAdd(firstDatetime time.Time, duration time.Duration) time.Time
- func DatetimeAddDay(firstDatetime time.Time, dayValue int) time.Time
- func DatetimeAddHour(firstDatetime time.Time, hourValue int) time.Time
- func DatetimeAddMinute(firstDatetime time.Time, minuteValue int) time.Time
- func DatetimeAddSecond(firstDatetime time.Time, secondValue int) time.Time
- func DatetimeSub(firstDatetime, secondDatetime time.Time) time.Duration
- func EmailFilter(source string) string
- func ExecCmd(cmdName string, args ...string) (string, string, error)
- func ExecCmdBytes(cmdName string, args ...string) ([]byte, []byte, error)
- func ExecCmdDir(dir, cmdName string, args ...string) (string, string, error)
- func ExecCmdDirBytes(dir, cmdName string, args ...string) ([]byte, []byte, error)
- func Expand(template string, match map[string]string, subs ...string) string
- func FetchFiles(client *http.Client, files []RawFile, header http.Header) error
- func FetchFilesCurl(files []RawFile, curlOptions ...string) error
- func FileMTime(file string) (int64, error)
- func FileSize(file string) (int64, error)
- func FilterHostProtocol(path string) string
- func FilterInt64Slice(all, other []int64) []int64
- func FilterStringSlice(all, other []string) []string
- func FilterUint64Slice(all, other []uint64) []uint64
- func Float64ToString(value float64) string
- func FromBase64(data string, args ...bool) (string, error)
- func FromJson(jsonString string, object interface{}) error
- func FromXml(xmlString string, object interface{}) error
- func GetAllSubDirs(rootPath string) ([]string, error)
- func GetCurrentDay() int32
- func GetCurrentDayCount(args ...time.Time) int
- func GetCurrentHour() int32
- func GetCurrentMinute() int32
- func GetCurrentMonth() int32
- func GetCurrentMonthMaxDate(args ...time.Time) time.Time
- func GetCurrentMonthMaxNanoTimestamp(args ...time.Time) int64
- func GetCurrentMonthMaxTimestamp(args ...time.Time) int64
- func GetCurrentMonthMinDate(args ...time.Time) time.Time
- func GetCurrentMonthMinNanoTimestamp(args ...time.Time) int64
- func GetCurrentMonthMinTimestamp(args ...time.Time) int64
- func GetCurrentSecond() int32
- func GetCurrentTime() time.Time
- func GetCurrentTimeStr() string
- func GetCurrentTimeUnix() int64
- func GetCurrentWeek() int
- func GetCurrentWeekDayRange() (int, int)
- func GetCurrentYear() int32
- func GetDateDay(datetime time.Time) int32
- func GetDateHour(datetime time.Time) int32
- func GetDateMinute(datetime time.Time) int32
- func GetDateMonth(datetime time.Time) int32
- func GetDateRangeForWeekInDateRange(startDate, endDate time.Time, week int) []time.Time
- func GetDateSecond(datetime time.Time) int32
- func GetDateYear(datetime time.Time) int32
- func GetDateYearMonthDay(args ...time.Time) int
- func GetDatetimeForDateAndTimeString(date time.Time, timeString string) time.Time
- func GetDatetimeWeekString(datetime time.Time) string
- func GetDayCount(datetime time.Time) int
- func GetField(v reflect.Value, i int) reflect.Value
- func GetFileListBySuffix(dirPath, suffix string) ([]string, error)
- func GetGOPATHs() []string
- func GetMaxDate(dtTime time.Time) time.Time
- func GetMaxDateNanoTimestamp(dtTime time.Time) int64
- func GetMaxDateTimestamp(dtTime time.Time) int64
- func GetMinDate(dtTime time.Time) time.Time
- func GetMinDateNanoTimestamp(dtTime time.Time) int64
- func GetMinDateTimestamp(dtTime time.Time) int64
- func GetNow() time.Time
- func GetSrcPath(importPath string) (appPath string, err error)
- func GetStringCount(sourceString string) int
- func GetSubString(sourceString string, count int, args ...string) string
- func GetTimeIntervalStringSlice(startDate, endDate time.Time, minutes int64) []string
- func GetTokenString() string
- func GetUint64SliceRange(int64Slice []uint64, count int) []uint64
- func GetUtcNow() time.Time
- func GetWeek(datetime time.Time) int
- func HasPrefix(content, target string) bool
- func HasPrefixSuffix(content, target string) bool
- func HasSuffix(content, target string) bool
- func HexStr2int(hexStr string) (int, error)
- func HomeDir() (home string, err error)
- func Html2JS(data []byte) []byte
- func HtmlDecode(str string) string
- func HtmlEncode(str string) string
- func HtmlToPureText(html string) string
- func HttpCall(client *http.Client, method, url string, header http.Header, body io.Reader) (io.ReadCloser, error)
- func HttpGet(client *http.Client, url string, header http.Header) (io.ReadCloser, error)
- func HttpGetBytes(client *http.Client, url string, header http.Header) ([]byte, error)
- func HttpGetJSON(client *http.Client, url string, v interface{}) error
- func HttpGetToFile(client *http.Client, url string, header http.Header, fileName string) error
- func HttpPost(client *http.Client, url string, header http.Header, body []byte) (io.ReadCloser, error)
- func HttpPostJSON(client *http.Client, url string, body, v interface{}) error
- func HumaneFileSize(s uint64) string
- func IdCardNumFilter(source string) string
- func InArray(arr []string, str string) bool
- func Int2HexStr(num int) (hex string)
- func Int64Diff(one, two []int64) []int64
- func Int64Inter(one, two []int64) []int64
- func Int64SliceToString(intSlice []int64, args ...string) string
- func Int64SliceToStringSlice(values []int64) []string
- func Int64ToString(value int64) string
- func Int64Union(one, two []int64) []int64
- func IntSliceToDate(intSlice []int) (time.Time, error)
- func IsAlpha(sourceString string, args ...interface{}) bool
- func IsAlphaOrNumber(sourceString string) bool
- func IsChinese(sourceString string, args ...interface{}) bool
- func IsDateGreaterThan(firstDatetime, secondDatetime time.Time) bool
- func IsDateLessThan(firstDatetime, secondDatetime time.Time) bool
- func IsDecimals(str ...string) bool
- func IsDir(dir string) bool
- func IsEmail(email string) bool
- func IsEmail2(sourceString string, args ...interface{}) bool
- func IsEmailRFC(email string) bool
- func IsEngishLowCase(str ...string) bool
- func IsEnglish(str ...string) bool
- func IsEnglishCap(str ...string) bool
- func IsExist(path string) bool
- func IsFile(filePath string) bool
- func IsID(str ...string) bool
- func IsIdCardNum(sourceString string) bool
- func IsInteger(str ...string) bool
- func IsJSON(str string) bool
- func IsLetter(l uint8) bool
- func IsMatchStringSliceCount(srcSlice []string, maxCount, stringItemCount int) bool
- func IsMobile(sourceString string) bool
- func IsNumber(sourceString string, args ...interface{}) bool
- func IsPwd(str ...string) bool
- func IsRegexpMatch(sourceString string, pattern string) bool
- func IsSliceContainsInt64(sl []int64, i int64) bool
- func IsSliceContainsStr(sl []string, str string) bool
- func IsSql(source string) bool
- func IsTelphone(sourceString string) bool
- func IsUrl(url string) bool
- func IsUsername(sourceString string, args ...interface{}) bool
- func JSON(a interface{}) string
- func JoinMapToString(params map[string]string, filterKeys []string, isEscape bool) string
- func JsonToStruct(data string, value interface{}) error
- func LgetAllSubDirs(rootPath string) ([]string, error)
- func LstatDir(rootPath string, includeDir ...bool) ([]string, error)
- func MapDataSign(params map[string]string, secret string) (string, bool)
- func Match(p string, s string) bool
- func Min(x, y int) int
- func MinutesToTimeString(minutes int64) string
- func MobileFilter(source string) string
- func ModFloat64(value float64, length int) float64
- func MonthsToSeasons(months []int32) []string
- func Nl2br(str string) string
- func Nonzero(v reflect.Value) bool
- func PackageName(v interface{}) string
- func ParseBool(s string) bool
- func ParseFloat32(f string) float32
- func ParseHTML(name, tmpl string, param interface{}) template.HTML
- func ParseText(name, tmpl string, param interface{}) string
- func ParseTime(stringTime string) time.Time
- func PowInt(x int, y int) int
- func ProcessID(processName string) (int, error)
- func ProcessStart(processName string) (string, error)
- func ProcessStop(processName string) (string, error)
- func RandNum(min, max int) int
- func RandNumStr(n int) string
- func RandOrd(n int) string
- func RandStr(n int, letter string) string
- func RandString(n int) string
- func Random(strings []string) ([]string, error)
- func RandomCreateBytes(n int, alphabets ...byte) []byte
- func ReplaceAll(s string, oldnew ...string) string
- func ReplaceNth(s, old, new string, n int) string
- func Reverse(s string) string
- func ReverseString(sourceString string) string
- func ReverseUint64Slice(int64Slice []uint64)
- func SetDefault(value, condition, def string) string
- func Split(str, sep string) []string
- func SqlFilter(source string) string
- func StatDir(rootPath string, includeDir ...bool) ([]string, error)
- func String2Br(source string) string
- func StringDiff(one, two []string) []string
- func StringInter(one, two []string) []string
- func StringReplace(sourceString string, args ...string) string
- func StringSliceLatest(srcSlice []string, maxCount int) []string
- func StringSliceToDate(dateStringSlice []string) (time.Time, error)
- func StringSliceToInt64Slice(values []string) []int64
- func StringSliceToString(stringSlice []string, args ...string) string
- func StringSliceToUint64Slice(values []string) []uint64
- func StringToBool(stringValue string) bool
- func StringToFloat64(stringValue string) float64
- func StringToInt(e string) (int, error)
- func StringToInt32(stringValue string) int32
- func StringToInt64(stringValue string) int64
- func StringToInt64Slice(sourceString string, args ...string) []int64
- func StringToIntSlice(sourceString string, args ...string) []int
- func StringToStringSlice(sourceString string, args ...string) []string
- func StringToTime(datetimeString string, args ...interface{}) (time.Time, error)
- func StringToUint32(stringValue string) uint32
- func StringToUint64(stringValue string) uint64
- func StringToUint64Slice(sourceString string, args ...string) []uint64
- func StringUnion(one, two []string) []string
- func StripTags(src string) string
- func StructToJson(value interface{}) (res string, err error)
- func SubString(src string, start, end int) string
- func Substr(s string, pos, length int) string
- func TimeSincePro(then time.Time, m map[string]string) string
- func TimeStringAddMinutes(timeString string, minutes int) string
- func TimeToFriendString(datetime time.Time, args ...interface{}) string
- func TimeToString(datetime time.Time, args ...interface{}) string
- func TimeToUnix(e time.Time) int64
- func ToBase64(data string, args ...bool) string
- func ToJson(object interface{}) (string, error)
- func ToLowerUnderlinedNamer(name string) string
- func ToSnakeCase(str string) string
- func ToStr(value interface{}, args ...int) (s string)
- func ToXml(object interface{}) (string, error)
- func TrimSpaceLine(source string) string
- func Uint64Diff(one, two []uint64) []uint64
- func Uint64Inter(one, two []uint64) []uint64
- func Uint64SliceToString(uintSlice []uint64, args ...string) string
- func Uint64SliceToStringSlice(values []uint64) []string
- func Uint64ToString(value uint64) string
- func Uint64Union(one, two []uint64) []uint64
- func UnixDate() time.Time
- func UnixNanoTimestamp() int64
- func UnixNanoTimestampToDate(unixNanoTimestamp int64) time.Time
- func UnixTimestamp() int64
- func UnixTimestampDate() time.Time
- func UnixTimestampToDate(unixTimestamp int64) time.Time
- func UnixToTime(e string) (datatime time.Time, err error)
- func UrlDecode(str string) (string, error)
- func UrlEncode(str string) string
- func WeekDay(t time.Time) string
- func WrapURL(u string) string
- func WriteFile(filename string, data []byte) error
- type Mailer
- type NotFoundError
- type RawFile
- type RemoteError
- type StrTo
- func (f StrTo) Exist() bool
- func (f StrTo) Float64() (float64, error)
- func (f StrTo) Int() (int, error)
- func (f StrTo) Int64() (int64, error)
- func (f StrTo) MustFloat64() float64
- func (f StrTo) MustInt() int
- func (f StrTo) MustInt64() int64
- func (f StrTo) MustUint8() uint8
- func (f StrTo) String() string
- func (f StrTo) Uint8() (uint8, error)
- type StringSet
- func (set *StringSet) Add(i string) bool
- func (set *StringSet) Contains(i string) bool
- func (set *StringSet) Index(c string) int
- func (set *StringSet) ItemByIndex(idx int) string
- func (set *StringSet) Len() int
- func (set *StringSet) Remove(i string)
- func (set *StringSet) Sort()
- func (set *StringSet) String() string
Examples ¶
Constants ¶
const ( Gray = uint8(iota + 90) Red Green Yellow Blue Magenta //NRed = uint8(31) // Normal EndColor = "\033[0m" )
Color number constants.
const ( Byte = 1 KByte = Byte * 1024 MByte = KByte * 1024 GByte = MByte * 1024 TByte = GByte * 1024 PByte = TByte * 1024 EByte = PByte * 1024 )
Storage unit constants.
const ( Minute = 60 Hour = 60 * Minute Day = 24 * Hour Week = 7 * Day Month = 30 * Day Year = 12 * Month )
Seconds-based time units
Variables ¶
var UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1541.0 Safari/537.36"
Functions ¶
func AESGCMDecrypt ¶ added in v0.0.9
AESGCMDecrypt decrypts ciphertext with the given key using AES in GCM mode.
func AESGCMEncrypt ¶ added in v0.0.9
AESGCMEncrypt encrypts plaintext with the given key using AES in GCM mode.
func AddMinutesForCurrent ¶
* 在当前的日期时间增加指定的分钟数,返回日期时间 *
func AppendStr ¶ added in v0.0.9
AppendStr appends string to slice with no duplicates.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { s := []string{"a"} s = util.AppendStr(s, "a") s = util.AppendStr(s, "b") fmt.Println(s) }
Output: [a b]
func ColorLog ¶ added in v0.0.9
func ColorLog(format string, a ...interface{})
ColorLog prints colored log to stdout. See color rules in function 'ColorLogS'.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { util.ColorLog(fmt.Sprintf( "[WARN] This is a tesing log that should be colored, path( %s ),"+ " highlight # %s #, error [ %s ].", "path to somewhere", "highlighted content", "tesing error")) }
Output:
func ColorLogS ¶ added in v0.0.9
ColorLogS colors log and return colored content. Log format: <level> <content [highlight][path]> [ error ]. Level: TRAC -> blue; ERRO -> red; WARN -> Magenta; SUCC -> green; others -> default. Content: default; path: yellow; error -> red. Level has to be surrounded by "[" and "]". Highlights have to be surrounded by "# " and " #"(space), "#" will be deleted. Paths have to be surrounded by "( " and " )"(space). Errors have to be surrounded by "[ " and " ]"(space). Note: it hasn't support windows yet, contribute is welcome.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { coloredLog := util.ColorLogS(fmt.Sprintf( "[WARN] This is a tesing log that should be colored, path( %s ),"+ " highlight # %s #, error [ %s ].", "path to somewhere", "highlighted content", "tesing error")) fmt.Println(coloredLog) }
Output:
func CompareSliceStr ¶ added in v0.0.9
CompareSliceStr compares two 'string' type slices. It returns true if elements and order are both the same.
func CompareSliceStrU ¶ added in v0.0.9
CompareSliceStrU compares two 'string' type slices. It returns true if elements are the same, and ignores the order.
func CompareVersion ¶
func CompressedHTML ¶
func CopyDir ¶ added in v0.0.9
CopyDir copy files recursively from source to target directory.
The filter accepts a function that process the path info. and should return true for need to filter.
It returns error when error occurs in underlying functions.
func DateT ¶ added in v0.0.9
Format time.Time struct to string MM - month - 01 M - month - 1, single bit DD - day - 02 D - day 2 YYYY - year - 2006 YY - year - 06 HH - 24 hours - 03 H - 24 hours - 3 hh - 12 hours - 03 h - 12 hours - 3 mm - minute - 04 m - minute - 4 ss - second - 05 s - second = 5
func DateToUnixNanoTimestamp ¶
* 获取指定日期的Unix纳秒时间戳 *
func DatetimeAdd ¶
* firstDatetime加上时间间隔duration,返回日期时间 *
func DatetimeAddDay ¶
* firstDatetime加上指定的天数,返回日期时间 *
func DatetimeAddHour ¶
* firstDatetime加上指定的小时数,返回日期时间 *
func DatetimeAddMinute ¶
* firstDatetime加上指定的分钟数,返回日期时间 *
func DatetimeAddSecond ¶
* firstDatetime加上指定的秒数,返回日期时间 *
func DatetimeSub ¶
* firstDatetime减去secondDatetime,返回时间间隔 *
func ExecCmd ¶ added in v0.0.9
ExecCmd executes system command and return stdout, stderr in string type, along with possible error.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { stdout, stderr, err := util.ExecCmd("go", "help", "get") fmt.Println(stdout, stderr, err) }
Output:
func ExecCmdBytes ¶ added in v0.0.9
ExecCmdBytes executes system command and return stdout, stderr in bytes type, along with possible error.
func ExecCmdDir ¶ added in v0.0.9
ExecCmdDir executes system command in given directory and return stdout, stderr in string type, along with possible error.
func ExecCmdDirBytes ¶ added in v0.0.9
ExecCmdDirBytes executes system command in given directory and return stdout, stderr in bytes type, along with possible error.
func Expand ¶ added in v0.0.9
Expand replaces {k} in template with match[k] or subs[atoi(k)] if k is not in match.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { match := map[string]string{ "domain": "gowalker.org", "subdomain": "github.com", } s := "http://{domain}/{subdomain}/{0}/{1}" fmt.Println(util.Expand(s, match, "unknwon", "gowalker")) }
Output: http://gowalker.org/github.com/unknwon/gowalker
func FetchFiles ¶ added in v0.0.9
FetchFiles fetches files specified by the rawURL field in parallel.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" "net/http" ) type rawFile struct { name string rawURL string data []byte } func (rf *rawFile) Name() string { return rf.name } func (rf *rawFile) RawUrl() string { return rf.rawURL } func (rf *rawFile) Data() []byte { return rf.data } func (rf *rawFile) SetData(p []byte) { rf.data = p } func main() { // Code that should be outside of your function body. // type rawFile struct { // name string // rawURL string // data []byte // } // func (rf *rawFile) Name() string { // return rf.name // } // func (rf *rawFile) RawUrl() string { // return rf.rawURL // } // func (rf *rawFile) Data() []byte { // return rf.data // } // func (rf *rawFile) SetData(p []byte) { // rf.data = p // } files := []util.RawFile{ &rawFile{rawURL: "http://example.com"}, &rawFile{rawURL: "http://example.com/foo"}, } err := util.FetchFiles(&http.Client{}, files, nil) fmt.Println(err, len(files[0].Data()), len(files[1].Data())) }
Output:
func FetchFilesCurl ¶ added in v0.0.9
FetchFilesCurl uses command `curl` to fetch files specified by the rawURL field in parallel.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) type rawFile struct { name string rawURL string data []byte } func (rf *rawFile) Name() string { return rf.name } func (rf *rawFile) RawUrl() string { return rf.rawURL } func (rf *rawFile) Data() []byte { return rf.data } func (rf *rawFile) SetData(p []byte) { rf.data = p } func main() { // Code that should be outside of your function body. // type rawFile struct { // name string // rawURL string // data []byte // } // func (rf *rawFile) Name() string { // return rf.name // } // func (rf *rawFile) RawUrl() string { // return rf.rawURL // } // func (rf *rawFile) Data() []byte { // return rf.data // } // func (rf *rawFile) SetData(p []byte) { // rf.data = p // } files := []util.RawFile{ &rawFile{rawURL: "http://example.com"}, &rawFile{rawURL: "http://example.com/foo"}, } err := util.FetchFilesCurl(files) fmt.Println(err, len(files[0].Data()), len(files[1].Data())) }
Output:
func FilterInt64Slice ¶
* 过滤int64数组(从all中过滤所有other中的数据,返回未被过滤的数据集合) *
func FilterStringSlice ¶
* 过滤字符数组(从all中过滤所有other中的数据,返回未被过滤的数据集合) *
func FilterUint64Slice ¶
* 过滤uint64数组(从all中过滤所有other中的数据,返回未被过滤的数据集合) *
func GetAllSubDirs ¶ added in v0.0.9
GetAllSubDirs returns all subdirectories of given root path. Slice does not include given path itself.
func GetCurrentMonthMaxDate ¶
* 获取当月里最大日期时间(2016-01-02 23:59:59 999999999) *
func GetCurrentMonthMaxNanoTimestamp ¶
* 获取当月里最大日期时间戳(当月最后一天最大时间),单位纳秒 *
func GetCurrentMonthMaxTimestamp ¶
* 获取当月里最大日期时间戳(当月最后一天最大时间),单位秒 *
func GetCurrentMonthMinDate ¶
* 获取当月里最小日期时间(2016-01-01 0:0:0 0) *
func GetCurrentMonthMinNanoTimestamp ¶
* 获取当月里最小日期时间戳(当月第一天最小时间),单位纳秒 *
func GetCurrentMonthMinTimestamp ¶
* 获取当月里最小日期时间戳(当月第一天最小时间),单位秒 *
func GetCurrentTime ¶
func GetCurrentTimeStr ¶
func GetCurrentTimeStr() string
func GetCurrentTimeUnix ¶
func GetCurrentTimeUnix() int64
func GetCurrentWeekDayRange ¶
* 获取当前周对应的月份里的日期范围(minDay in month, maxDay in month) *
func GetDateRangeForWeekInDateRange ¶
* 获取日期范围内的所属周几的日期集合 * week:从1开始,1表示周一,依次类推 *
func GetDatetimeForDateAndTimeString ¶
* 日期时间的日期部分和时间字符串连接,返回日期时间 *
func GetDatetimeWeekString ¶
* 获取日期时间的日期和星期字符串 *
func GetFileListBySuffix ¶ added in v0.0.9
GetFileListBySuffix returns an ordered list of file paths. It recognize if given path is a file, and don't do recursive find.
func GetGOPATHs ¶ added in v0.0.9
func GetGOPATHs() []string
GetGOPATHs returns all paths in GOPATH variable.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { gps := util.GetGOPATHs() fmt.Println(gps) }
Output:
func GetMaxDate ¶
* 返回日期的最大日期时间(2016-01-02 23:59:59 999999999) *
func GetMaxDateNanoTimestamp ¶
* 获取日期的最大日期时间戳,单位纳秒 *
func GetMinDateNanoTimestamp ¶
* 获取日期的最小日期时间戳,单位纳秒 *
func GetSrcPath ¶ added in v0.0.9
GetSrcPath returns app. source code path. It only works when you have src. folder in GOPATH, it returns error not able to locate source folder path.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { srcPath, err := util.GetSrcPath("github.com/unknwon/com") if err != nil { fmt.Println(err) return } fmt.Println(srcPath) }
Output:
func GetSubString ¶
* 获取指定长度的字符串 *
func GetTimeIntervalStringSlice ¶
* 获取一段时间范围内指定间隔的时间段集合 *
func GetUint64SliceRange ¶
* 获取指定个数的uint64slice *
func HexStr2int ¶ added in v0.0.9
HexStr2int converts hex format string to decimal number.
func HomeDir ¶ added in v0.0.9
HomeDir returns path of '~'(in Linux) on Windows, it returns error when the variable does not exist.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { hd, err := util.HomeDir() fmt.Println(hd, err) }
Output:
func Html2JS ¶ added in v0.0.9
Html2JS converts []byte type of HTML content into JS format.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { htm := "<div id=\"button\" class=\"btn\">Click me</div>\n\r" js := string(util.Html2JS([]byte(htm))) fmt.Println(js) }
Output: <div id=\"button\" class=\"btn\">Click me</div>\n
func HtmlDecode ¶ added in v0.0.9
HtmlDecode decodes string to html chars
func HtmlToPureText ¶
func HttpCall ¶ added in v0.0.9
func HttpCall(client *http.Client, method, url string, header http.Header, body io.Reader) (io.ReadCloser, error)
HttpCall makes HTTP method call.
func HttpGet ¶ added in v0.0.9
HttpGet gets the specified resource. ErrNotFound is returned if the server responds with status 404.
func HttpGetBytes ¶ added in v0.0.9
HttpGetBytes gets the specified resource. ErrNotFound is returned if the server responds with status 404.
func HttpGetJSON ¶ added in v0.0.9
HttpGetJSON gets the specified resource and mapping to struct. ErrNotFound is returned if the server responds with status 404.
func HttpGetToFile ¶ added in v0.0.9
HttpGetToFile gets the specified resource and writes to file. ErrNotFound is returned if the server responds with status 404.
func HttpPost ¶ added in v0.0.9
func HttpPost(client *http.Client, url string, header http.Header, body []byte) (io.ReadCloser, error)
HttpPost posts the specified resource. ErrNotFound is returned if the server responds with status 404.
func HttpPostJSON ¶ added in v0.0.9
HttpPostJSON posts the specified resource with struct values, and maps results to struct. ErrNotFound is returned if the server responds with status 404.
func HumaneFileSize ¶ added in v0.0.9
HumaneFileSize calculates the file size and generate user-friendly string.
func Int2HexStr ¶ added in v0.0.9
Int2HexStr converts decimal number to hex format string.
func Int64SliceToString ¶
* 用指定的字符串把int64切片链接为字符串 *
func Int64SliceToStringSlice ¶
* 整型64切片转为字符串切片 *
func IsDateGreaterThan ¶
* 判断firstDatetime是否在secondDatetime的后面,即firstDatetime比secondDatetime日期大 *
func IsDateLessThan ¶
* 判断firstDatetime是否在secondDatetime的前面,即firstDatetime比secondDatetime日期小 *
func IsDir ¶ added in v0.0.9
IsDir returns true if given path is a directory, or returns false when it's a file or does not exist.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { if util.IsDir("files") { fmt.Println("directory 'files' exists") return } fmt.Println("'files' is not a directory or does not exist") }
Output:
func IsEmail ¶
IsEmail validates string is an email address, if not return false basically validation can match 99% cases
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { fmt.Println(util.IsEmail("test@example.com")) fmt.Println(util.IsEmail("@example.com")) }
Output: true false
func IsEmailRFC ¶ added in v0.0.9
IsEmailRFC validates string is an email address, if not return false this validation omits RFC 2822
func IsEngishLowCase ¶
************************ 英文类型 ************************ 仅小写
func IsExist ¶ added in v0.0.9
IsExist checks whether a file or directory exists. It returns false when the file or directory does not exist.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { if util.IsExist("file.go") { fmt.Println("file.go exists") return } fmt.Println("file.go does not exist") }
Output:
func IsFile ¶ added in v0.0.8
IsFile returns true if given path is a file, or returns false when it's a directory or does not exist.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { if util.IsFile("file.go") { fmt.Println("file.go exists") return } fmt.Println("file.go is not a file or does not exist") }
Output:
func IsLetter ¶ added in v0.0.9
IsLetter returns true if the 'l' is an English letter.
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { fmt.Println(util.IsLetter('1')) fmt.Println(util.IsLetter('[')) fmt.Println(util.IsLetter('a')) fmt.Println(util.IsLetter('Z')) }
Output: false false true true
func IsMatchStringSliceCount ¶
* 判断字符串切片及单个项的字符数是否匹配指定大小, *
func IsSliceContainsInt64 ¶ added in v0.0.9
IsSliceContainsInt64 returns true if the int64 exists in given slice.
func IsSliceContainsStr ¶ added in v0.0.9
IsSliceContainsStr returns true if the string exists in given slice, ignore case.
func IsUrl ¶ added in v0.0.9
IsUrl validates string is a url link, if not return false simple validation can match 99% cases
Example ¶
package main import ( "fmt" "github.com/qtoad/myxgo-plusplus/util" ) func main() { fmt.Println(util.IsUrl("http://example.com")) fmt.Println(util.IsUrl("http//example.com")) }
Output: true false
func IsUsername ¶
* 是否用户名(以英文字母开头,后面跟英文字母和数据以及下划线) *
func JoinMapToString ¶
* 字典参数升序排序,组成键=值集合,然后把集合用&拼接成字符串 *
func JsonToStruct ¶
func LgetAllSubDirs ¶ added in v0.0.9
LgetAllSubDirs returns all subdirectories of given root path, including following symbolic links, if any. Slice does not include given path itself.
func LstatDir ¶ added in v0.0.9
LstatDir gathers information of given directory by depth-first. It returns slice of file list, follows symbolic links and includes subdirectories if enabled; it returns error and nil slice when error occurs in underlying functions, or given path is not a directory or does not exist.
Slice does not include given path itself. If subdirectories is enabled, they will have suffix '/'.
func MapDataSign ¶
* 签名算法 * params里的每个Value都需要进行url编码 * fmt.Sprintf("%s=%s", key, url.QueryEscape(value)) *
func PackageName ¶
func PackageName(v interface{}) string
func ParseFloat32 ¶
func ProcessStart ¶ added in v0.0.9
* 运行指定的进程 *
func ProcessStop ¶ added in v0.0.9
* 杀死指定pid进程 *
func RandNumStr ¶
func RandString ¶
func RandomCreateBytes ¶ added in v0.0.9
RandomCreateBytes generate random []byte by specify chars.
func ReplaceAll ¶
func ReplaceNth ¶
func SetDefault ¶
func StatDir ¶ added in v0.0.9
StatDir gathers information of given directory by depth-first. It returns slice of file list and includes subdirectories if enabled; it returns error and nil slice when error occurs in underlying functions, or given path is not a directory or does not exist.
Slice does not include given path itself. If subdirectories is enabled, they will have suffix '/'.
func StringReplace ¶
* 字符串替换 * sourceString: 原始字符串 * args[0...n-2]: 被替换字符串集合 * args[n-1]: 替换字符串 *
func StringSliceLatest ¶
* 保留指定长度字符串切片,前面的数据移除 *
func StringSliceToDate ¶
* 日期字符串切片转成日期 *
func StringSliceToInt64Slice ¶
* 字符串切片转为整型64切片 *
func StringSliceToString ¶
* 用指定的字符串链接字符串切片 *
func StringSliceToUint64Slice ¶
* 字符串切片转为无符号整型64切片 *
func StringToInt ¶
func StringToInt64Slice ¶
* 用指定的字符串把源字符串分隔为int64切片 *
func StringToIntSlice ¶
* 用指定的字符串把源字符串分隔为int切片 *
func StringToStringSlice ¶
* 用指定的字符串分隔源字符串为字符串切片 *
func StringToTime ¶
* 字符串转时间 * isUtc参数决定传入的日期字符串是否是utc日期 * isUtc:bool | format:string * 返回UTC日期 *
func StringToUint64Slice ¶
* 用指定的字符串把源字符串分隔为uint64切片 *
func StructToJson ¶
func TimeSincePro ¶
TimeSincePro calculates the time interval and generate full user-friendly string.
func TimeStringAddMinutes ¶
* 时间字符串加指定的分钟数,返回时间字符串 *
func TimeToFriendString ¶
* 日期时间转换成友好的显示字符串 * isUtc:bool | format:string *
func ToLowerUnderlinedNamer ¶
ToLowerUnderlinedNamer 转换为小写下划线命名
func ToSnakeCase ¶ added in v0.0.9
ToSnakeCase can convert all upper case characters in a string to underscore format.
Some samples.
"FirstName" => "first_name" "HTTPServer" => "http_server" "NoHTTPS" => "no_https" "GO_PATH" => "go_path" "GO PATH" => "go_path" // space is converted to underscore. "GO-PATH" => "go_path" // hyphen is converted to underscore.
func Uint64SliceToString ¶
* 用指定的字符串把uint64切片链接为字符串 *
func Uint64SliceToStringSlice ¶
* 无符号整型64切片转为字符串切片 *
func UnixNanoTimestampToDate ¶
* 根据Unix纳秒时间戳返回日期 *
func UnixTimestampToDate ¶
* 根据Unix时间戳返回日期 *
Types ¶
type NotFoundError ¶ added in v0.0.9
type NotFoundError struct {
Message string
}
func (NotFoundError) Error ¶ added in v0.0.9
func (e NotFoundError) Error() string
type RemoteError ¶ added in v0.0.9
func (*RemoteError) Error ¶ added in v0.0.9
func (e *RemoteError) Error() string
type StrTo ¶ added in v0.0.9
type StrTo string
Convert string to specify type.