tsgutils

package module
v0.0.0-...-a86b05b Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2018 License: AGPL-3.0 Imports: 14 Imported by: 24

README

Go utils

Some of frequently used utils.

intro
file function
id_generator GUID, UUID
json StructToJson, JsonToStruct
log CheckAndPrintError
signer HmacSha256Base64Signer, Md5Signer
string Trim, Replace, Contains, ToArray, ToInt, ToInt64, ToFloat, Substring, Append, StringBuilder, Clear, Remove,RemoveLast
string_builder StringBuilder,Append,Replace,RemoveLast
interface_builder InterfaceBuilder, Append, Clear
time Millisecond, EpochTime, IsoTime, UTC, StringToTime, TimeToString
other,utils_test IIIOperator, symbol, test
Installation
$ go get -u github.com/typa01/go-utils
Usage
More info see: utils_test.go
import (
	tsgutils "github.com/typa01/go-utils"
)
	str1 := tsgutils.NewString("13990521234")
	str2 := tsgutils.NewString("14")
	str3 := str1.Substring(0, 2).Append(str2).AppendString("520")
	println(str1.ToString())
	println(str2.ToString())
	println(str3.ToString())
	builder := NewStringBuilder()
	builder.Append("a").Append("b").Append("c")
	str := builder.ToString()
func (user *User) Rows2struct(rows *mysql.Rows) {
	var users []User
	builder := tsgutils.NewInterfaceBuilder()
	for rows.Next() {
		builder.Clear()
		builder.Append(&user.Host).Append(&user.User)
		builder.Append(&user.AuthenticationString)
		err := rows.Scan(builder.ToInterfaces()...)
		tsgutils.CheckAndPrintError("MySQL query rows scan error", err)
		users = append(users, *user)
	}
	if rows != nil {
		defer rows.Close()
	}
	user.Users = users
}
The future will continue to be updated.
https://blog.csdn.net/typa01_kk/article/category/7629914

Documentation

Index

Constants

View Source
const (
	DOT               = "."
	COMMA             = ","
	SEMICOLON         = ""
	COLON             = ":"
	AET               = "@"
	HLINE             = "-"
	UNDERLINE         = "_"
	EMPTY             = ""
	BRACKET_LEFT      = "["
	BRACKET_RIGHT     = "]"
	BRACE_LEFT        = "{"
	BRACE_RIGHT       = "}"
	PARENTHESIS_LEFT  = "("
	PARENTHESIS_RIGHT = ")"
	SPRIT             = "/"
	AND               = "&"
	QUESTION          = "?"
	EQUAL             = "="
	PROTOCOL          = "://"
	HTTP              = "http://"
	HTTPS             = "https://"
	LF                = "\n"
	CR                = "\r"
	SPACE             = " "
)
View Source
const (
	MILLION = 1000000
)

Variables

View Source
var LAYOUT = map[int]string{
	1: "2006-01-02",
	2: "2006-01-02 15:04",
	3: "2006-01-02 15:04:05",
	4: "2006-01-02 15:04:05.001",
	5: "2006-01-02T15:04:05.001Z",
	6: "1136214245.001",
}

Functions

func ArrayToString

func ArrayToString(arrays []string) string

[9 9 8 4 2 9 1 7 - a 5 4 b - 3 3 1 6 - c d f 3 - 8 7 d 9 f b 5 7] -> "99842917-a54b-3316-cdf3-87d9fb57"

func CheckAndPrintError

func CheckAndPrintError(flag string, err error)

If there is an error print it, pass it

func EpochTime

func EpochTime(time time.Time) string

Get a epoch time

eg: 1521221737.376

func EpochTimeNow

func EpochTimeNow() string

func EpochToTime

func EpochToTime(epoch string) (time.Time, error)

func FirstCaseToUpper

func FirstCaseToUpper(str string, first bool) string

first = false: "aaa_bbb_ccc" -> "aaaBbbCcc" first = true: "aaa_bbb_ccc" -> "AaaBbbCcc"

func FmtPrintln

func FmtPrintln(info interface{})

func GUID

func GUID() string

return eg: 4725f5ae6a350b1c45687c9934456e6f

func HmacSha256Base64Signer

func HmacSha256Base64Signer(message string, secretKey string) (string, error)

signing a message using: hmac sha256 + base64

eg:
  message = Pre_hash function comment
  secretKey = E65791902180E9EF4510DB6A77F6EBAE

return signed string = TO6uwdqz+31SIPkd4I+9NiZGmVH74dXi+Fd5X0EzzSQ=

func IIIInterfaceOperator

func IIIInterfaceOperator(condition bool, trueValue, falseValue interface{}) interface{}

ternary operator, replace other language: a == b ? c : d

func InterfaceToInt

func InterfaceToInt(i interface{}) int

func InterfaceToString

func InterfaceToString(i interface{}) string

func IsoTime

func IsoTime(time time.Time) string

Get a iso time

eg: 2018-03-16T18:02:48.284Z

func IsoTimeNow

func IsoTimeNow() string

func IsoToTime

func IsoToTime(iso string) (time.Time, error)

iso time change to time.Time eg: "2018-11-18T16:51:55.933Z" -> 2018-11-18 16:51:55.000000933 +0000 UTC

func JsonToStruct

func JsonToStruct(jsonString string, object interface{})
  Convert json string to struct
  eg:
	jsonString := "{\"field1\":\"Welcome to time space chain ...\",\"field2\":\"1688\",\"field3\":\"1314.521\"}"

	var info Info
	Json2Struct(jsonString, &info)
	println(info.Field1)
  print:
    Welcome to time space chain ...

func Md5Signer

func Md5Signer(message string) string

md5 sign: "123" -> "202cb962ac59075b964b07152d234b70"

func Millisecond

func Millisecond() int64

get system current time's millisecond

func Nanosecond

func Nanosecond() int64

get system current time's nanosecond

func PreHashString

func PreHashString(timestamp string, method string, requestPath string, body string) string

the pre hash string

eg:
  timestamp = 2018-03-08T10:59:25.789Z
  method  = POST
  request_path = /orders?before=2&limit=30
  body = {"product_id":"BTC-USD-0309","order_id":"377454671037440"}

return pre hash string = 2018-03-08T10:59:25.789ZPOST/orders?before=2&limit=30{"product_id":"BTC-USD-0309","order_id":"377454671037440"}

func Print

func Print(arg ...interface{})

func Println

func Println(arg ...interface{})

func Second

func Second() int64

get system current time's second

func Stdout

func Stdout(arg ...interface{})

func StringToTime

func StringToTime(timeString string, layoutNo int) (time.Time, error)

func StructToJson

func StructToJson(object interface{}) string

*

  Convert struct to json string
  eg:
	type Info struct {
		Field1 string  `json:"field1"`
		Field2 int64   `json:"field2,string"`
		Field3 float64 `json:"field3,string"`
	}

	var info Info
	info.Field1 = "Welcome to time space chain ..."
	info.Field2 = 1688
	info.Field3 = 1314.521

  return:
    {"field1":"Welcome to time space chain ...","field2":"1688","field3":"1314.521"}

func TimeToString

func TimeToString(time time.Time, layoutNo int) string

func UTC

func UTC() string

Get a UTC time string eg: 2018-04-08 16:16:06.327540712 +0000 UTC

func UUID

func UUID() string

return eg: e7486845-9f24-c3d8-0db1-fe61e25c88a2

Types

type Info

type Info struct {
	Field1 string  `json:"field1"`
	Field2 int64   `json:"field2,string"`
	Field3 float64 `json:"field3,string"`
}

test struct

type InterfaceBuilder

type InterfaceBuilder struct {
	// contains filtered or unexported fields
}

func NewInterfaceBuilder

func NewInterfaceBuilder() *InterfaceBuilder

func (*InterfaceBuilder) Append

func (builder *InterfaceBuilder) Append(arg interface{}) *InterfaceBuilder

func (*InterfaceBuilder) Appends

func (builder *InterfaceBuilder) Appends(args ...interface{}) *InterfaceBuilder

func (*InterfaceBuilder) Clear

func (builder *InterfaceBuilder) Clear() *InterfaceBuilder

func (*InterfaceBuilder) ToInterfaces

func (builder *InterfaceBuilder) ToInterfaces() []interface{}

type String

type String struct {
	// contains filtered or unexported fields
}
  String struct.
	  Usage:
		str1 := NewString("13990521234")
		str2 := NewString("14")
		str3 := str1.Substring(0, 2).Append(str2).AppendString("520")
		println(str1.ToString())
		println(str2.ToString())
		println(str3.ToString())
	  print:
		13990521234
		14
		1314520

func NewString

func NewString(s string) *String

func NewStringFloat64

func NewStringFloat64(f float64) *String

func NewStringInt

func NewStringInt(i int) *String

func NewStringInt64

func NewStringInt64(i int64) *String

func (*String) Append

func (str *String) Append(arg *String) *String

func (*String) AppendFloat64

func (str *String) AppendFloat64(f float64) *String

func (*String) AppendInt

func (str *String) AppendInt(i int) *String

func (*String) AppendInt64

func (str *String) AppendInt64(i int64) *String

func (*String) AppendString

func (str *String) AppendString(arg string) *String

func (*String) Clear

func (str *String) Clear() *String

func (*String) Contains

func (str *String) Contains(chars string) bool

If a string contains a string, return true eg: "strings insert chars"

chars = "insert" -> true
chars = "Insert" -> false
chars = "key" -> false

func (*String) ContainsIgnoreCase

func (str *String) ContainsIgnoreCase(chars string) bool

If a string contains a string, return true, and ignore case. eg: "strings insert chars"

chars = "insert" -> true
chars = "Insert" -> true
chars = "key" -> false

func (*String) EndsWith

func (str *String) EndsWith(s string) bool

"123xxxbbb5990" -> "5990" = true

func (*String) Index

func (str *String) Index(chars string) int

abcdef -> e = 4

func (*String) LastIndex

func (str *String) LastIndex(chars string) int

abcdef -> b = 1

func (*String) Len

func (str *String) Len() int

"123" -> 3

func (*String) Remove

func (str *String) Remove(index int) *String

"abc" -> 1 -> "ac"

func (*String) RemoveLast

func (str *String) RemoveLast() *String

"abc" -> "ab"

func (*String) Replace

func (str *String) Replace(old, new string) *String

"%111%abc%987%" -> ("%", "$") -> "$111$abc$987$"

func (*String) StartsWith

func (str *String) StartsWith(s string) bool

"123xxxbbb5990" -> "123x" = true

func (*String) Substring

func (str *String) Substring(beginIndex, endIndex int) *String

str := NewString("abcde") str.Substring(0, 2) return: "ab"

func (*String) SubstringBegin

func (str *String) SubstringBegin(beginIndex int) *String

str := NewString("abcde") str.SubstringBegin(2) return: "cde"

func (*String) SubstringEnd

func (str *String) SubstringEnd(endIndex int) *String

str := NewString("abcde") str.SubstringEnd(3) return: "abc"

func (*String) ToArray

func (str *String) ToArray() []string

"460364431014955c2483ec91230e5435" -> [4 6 0 3 6 4 4 3 1 0 1 4 9 5 5 c 2 4 8 3 e c 9 1 2 3 0 e 5 4 3 5]

func (*String) ToFloat

func (str *String) ToFloat() (float64, error)

func (*String) ToInt

func (str *String) ToInt() (int, error)

"12345" -> 12345

func (*String) ToInt64

func (str *String) ToInt64() (int64, error)

func (*String) ToLower

func (str *String) ToLower() *String

"aaa" -> "AAA"

func (*String) ToString

func (str *String) ToString() string

func (*String) ToUpper

func (str *String) ToUpper() *String

"BBB" -> "bbb"

func (*String) Trim

func (str *String) Trim() *String

" 123 " -> "123" " 1 23 " -> "1 23"

type StringBuilder

type StringBuilder struct {
	// contains filtered or unexported fields
}
  StringBuilder struct.
	  Usage:
		builder := NewStringBuilder()
		builder.Append("a").Append("b").Append("c")
		s := builder.String()
		println(s)
	  print:
		abc

func NewStringBuilder

func NewStringBuilder() *StringBuilder

func NewStringBuilderString

func NewStringBuilderString(str *String) *StringBuilder

func (*StringBuilder) Append

func (builder *StringBuilder) Append(s string) *StringBuilder

func (*StringBuilder) AppendFloat64

func (builder *StringBuilder) AppendFloat64(f float64) *StringBuilder

func (*StringBuilder) AppendInt

func (builder *StringBuilder) AppendInt(i int) *StringBuilder

func (*StringBuilder) AppendInt64

func (builder *StringBuilder) AppendInt64(i int64) *StringBuilder

func (*StringBuilder) AppendStrings

func (builder *StringBuilder) AppendStrings(ss ...string) *StringBuilder

func (*StringBuilder) Clear

func (builder *StringBuilder) Clear() *StringBuilder

func (*StringBuilder) RemoveLast

func (builder *StringBuilder) RemoveLast() *StringBuilder

func (*StringBuilder) Replace

func (builder *StringBuilder) Replace(old, new string) *StringBuilder

func (*StringBuilder) ToString

func (builder *StringBuilder) ToString() string

Jump to

Keyboard shortcuts

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