Documentation ¶
Index ¶
- func BuildStrings(parts ...string) string
- func BuildStringsWithJoin(sep string, parts ...string) string
- func BuildStringsWithJoinIgnoreEmpty(sep string, parts ...string) string
- func BuildStringsWithReplacement(replacement map[string]string, parts ...string) string
- func BuildStringsWithTemplate(template string, args ...string) string
- func CheckStruct(structure any, tag ...string) string
- func ContainsArray[T comparable](array []T, target T) bool
- func ConvertStructToStringMap(val any, keyPrefix ...string) map[string]string
- func FilterArray[T any](array []T, filter func(T) bool) []T
- func Float32ToString[T ~float32](raw T) string
- func Float64ToString[T ~float64](raw T) string
- func IndexArray[T comparable](array []T, target T) int
- func Int64ToString[T ~int64](raw T) string
- func IntToString[T ~int](raw T) string
- func MergeArrays[T any](arrays ...[]T) []T
- func Nil[T any]() T
- func NilFunction[T any]() func() T
- func NumberOrStringValueGetFloat(value any) float64
- func NumberOrStringValueGetInt(value any) int
- func NumberOrStringValueGetString(value any) string
- func Ptr[T any](val T) *T
- func RemoveArray[T comparable](array []T, start, end int) []T
- func ReverseArray[T any](array []T) []T
- func ShuffleArray[T any](array []T, start, end int) []T
- func SortArray[T any](array []T, cmp func(T, T) bool) []T
- func StringToBool[T ~bool](raw string, defaultValue T) T
- func StringToBoolPtr[T ~bool](raw string) *T
- func StringToFloat64[T ~float64](raw string, defaultValue T) T
- func StringToFloat64Ptr[T ~float64](raw string) *T
- func StringToInt[T ~int](raw string, defaultValue T) T
- func StringToIntPtr[T ~int](raw string) *T
- func StringToStringPtr[T ~string](raw string) *T
- func StringToUint[T ~uint](raw string, defaultValue T) T
- func StringToUintPtr[T ~uint](raw string) *T
- func Uint64ToString[T ~uint64](raw T) string
- func UintToString[T ~uint](raw T) string
- func UniqueArray[T comparable](array []T) []T
- func UnsafeBytesToString(b []byte) string
- func UnsafeStringToBytes(s string) []byte
- type RawSqlTemplate
- type StringTemplate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildStrings ¶ added in v1.2.6
BuildStrings 构建字符串,使用strings.Builder example:
BuildStrings("a", "b", "c") -> "abc"
func BuildStringsWithJoin ¶ added in v1.2.10
BuildStringsWithJoin 构建字符串,使用strings.Join example:
BuildStringsWithJoin("/", "a", "b", "c") -> "a/b/c"
func BuildStringsWithJoinIgnoreEmpty ¶ added in v1.2.10
BuildStringsWithJoinIgnoreEmpty use strings.Join to build string, all empty string in parts will be ignored example:
BuildStringsWithJoinIgnoreEmpty("/", "a", "", "b", "c", "") -> "a/b/c"
func BuildStringsWithReplacement ¶ added in v1.2.6
BuildStringsWithReplacement 构建字符串,使用strings.Builder,同时替换字符串 example:
BuildStringsWithReplacement(map[string]string{"a": "1", "b": "2", "c": "3"}, "a", "b", "c") -> "123"
func BuildStringsWithTemplate ¶ added in v1.2.6
BuildStringsWithTemplate 构建字符串并替换模板,使用strings.ReplaceAll example:
BuildStringsWithTemplate("a{1}b{2}c{3}", "1", "2", "3") -> "a1b2c3"
func CheckStruct ¶ added in v1.2.12
func ContainsArray ¶ added in v1.2.13
func ContainsArray[T comparable](array []T, target T) bool
ContainsArray checks if the target is in the array.
example:
ContainsArray([]int{1, 2, 3}, 2) => true ContainsArray([]string{"a", "b", "c"}, "d") => false
func ConvertStructToStringMap ¶ added in v1.2.12
ConvertStructToStringMap 函数将结构体转换为map[string]string,为了template使用
- val: 结构体,需要指定cpc tag
- keyPrefix: key的前缀,选填
example:
type User struct { Name string `cpc:"key:name"` Age int `cpc:"key:age,omitempty"` Male bool `cpc:"key:male,default:true"` } user := &User{ Name: "test", Age: 0, } result := ConvertStructToStringMap(user) // map[male:true name:test]
func FilterArray ¶ added in v1.2.14
FilterArray filters the array with the filter function.
example:
FilterArray([]int{1, 2, 3}, func(i int) bool { return i > 1 }) => []int{2, 3} FilterArray([]string{"a", "b", "c"}, func(s string) bool { return s != "a" }) => []string{"b", "c"}
func Float32ToString ¶ added in v1.2.9
func Float64ToString ¶ added in v1.2.9
func IndexArray ¶ added in v1.2.13
func IndexArray[T comparable](array []T, target T) int
IndexArray returns the index of the target in the array.
example:
IndexArray([]int{1, 2, 3}, 2) => 1 IndexArray([]string{"a", "b", "c"}, "d") => -1
func Int64ToString ¶ added in v1.2.9
func IntToString ¶ added in v1.2.9
func MergeArrays ¶ added in v1.2.13
func MergeArrays[T any](arrays ...[]T) []T
MergeArrays concatenates the arrays.
example:
MergeArrays([]int{1, 2}, []int{3, 4}) => []int{1, 2, 3, 4} MergeArrays([]string{"a", "b"}, []string{"c", "d"}) => []string{"a", "b", "c", "d"}
func NilFunction ¶
func NilFunction[T any]() func() T
func NumberOrStringValueGetFloat ¶ added in v1.2.6
func NumberOrStringValueGetInt ¶ added in v1.2.6
func NumberOrStringValueGetString ¶ added in v1.2.6
func RemoveArray ¶ added in v1.2.13
func RemoveArray[T comparable](array []T, start, end int) []T
RemoveArray removes the elements from the array from [start, end).
example:
RemoveArray([]int{1, 2, 3}, 1, 2) => []int{1} RemoveArray([]string{"a", "b", "c"}, 0, 1) => []string{"c"}
func ReverseArray ¶ added in v1.2.9
func ReverseArray[T any](array []T) []T
ReverseArray reverses the array. The original array will not be modified.
example:
ReverseArray([]int{1, 2, 3}) => []int{3, 2, 1} ReverseArray([]string{"a", "b", "c"}) => []string{"c", "b", "a"}
func ShuffleArray ¶ added in v1.2.13
ShuffleArray shuffles the array from [start, end).
example:
ShuffleArray([]int{1, 2, 3}, 0, 3) => []int{3, 1, 2} ShuffleArray([]string{"a", "b", "c"}, 0, 3) => []string{"c", "a", "b"}
func SortArray ¶ added in v1.2.14
SortArray sorts the array with the compare function. The original array will not be modified.
example:
SortArray([]int{3, 1, 2}, func(i, j int) bool { return i < j }) => []int{1, 2, 3} SortArray([]string{"c", "a", "b"}, func(i, j string) bool { return i < j }) => []string{"a", "b", "c"}
func StringToBool ¶ added in v1.2.9
StringToBool 字符串转换为bool example:
StringToBool("true", false) -> true
func StringToBoolPtr ¶ added in v1.2.9
StringToBoolPtr 字符串转换为*bool example:
StringToBoolPtr("true") -> true
func StringToFloat64 ¶ added in v1.2.9
StringToFloat64 字符串转换为float64 example:
StringToFloat64("1.0", 0) -> 1.0
func StringToFloat64Ptr ¶ added in v1.2.9
StringToFloat64Ptr 字符串转换为*float64 example:
StringToFloat64Ptr("1.0") -> 1.0
func StringToStringPtr ¶ added in v1.2.9
StringToStringPtr 字符串转换为*string example:
StringToStringPtr("test") -> "test"
func StringToUintPtr ¶ added in v1.2.9
StringToUintPtr 字符串转换为*uint example:
StringToUintPtr("1") -> 1
func Uint64ToString ¶ added in v1.2.9
func UintToString ¶ added in v1.2.9
func UniqueArray ¶ added in v1.2.13
func UniqueArray[T comparable](array []T) []T
UniqueArray returns a new array with unique elements.
example:
UniqueArray([]int{1, 2, 2, 3}) => []int{1, 2, 3} UniqueArray([]string{"a", "b", "b", "c"}) => []string{"a", "b", "c"}
func UnsafeBytesToString ¶ added in v1.2.12
UnsafeBytesToString converts a byte slice to a string without copying the data. before you use this function, you should know what you are doing.
- see also: k8s usage
func UnsafeStringToBytes ¶ added in v1.2.12
UnsafeStringToBytes converts a string to a byte slice without memory allocation. before you use this function, you should know what you are doing.
- see also: k8s usage
Types ¶
type RawSqlTemplate ¶ added in v1.2.12
type RawSqlTemplate struct {
*StringTemplate
}
func NewRawSqlTemplate ¶ added in v1.2.12
func NewRawSqlTemplate(template string, arguments any) *RawSqlTemplate
NewRawSqlTemplate 创建一个字符串模板,使用支持的内容作为参数,支持的内容有:结构体(指针),map[string]string,*map[string]string
- template: 模板字符串
- args: 参数,如果是结构体(指针),需要指定cpc tag,并且目前只支持uint, int, float, string, bool和嵌套结构体类型的成员字段
example:
type User struct { Name string `cpc:"key:name"` Age int `cpc:"key:age,default:18"` } user := &User{ Name: "'; DROP TABLE users WHERE 1=1 --", } template := "SELECT * FROM user WHERE name = '${name}' AND age = ${age}" result := NewRawSqlTemplate(template, user).Parse()
then
SELECT * FROM user WHERE name = '\'; DROP TABLE users WHERE 1=1 --' AND age = 18
func NewRawSqlTemplateWithMap ¶ added in v1.2.12
func NewRawSqlTemplateWithMap(template string, arguments map[string]string) *RawSqlTemplate
NewRawSqlTemplateWithMap 创建一个字符串模板,使用map[string]string作为参数,并且模板中的参数会被转义
- template: 模板字符串
- arguments: 参数
example:
template := "SELECT * FROM user WHERE name = '${name}'" arguments := map[string]string{ "name": "test", } result := NewRawSqlTemplateWithMap(template, arguments).Parse() fmt.Println(result) // SELECT * FROM user WHERE name = 'test'
type StringTemplate ¶ added in v1.2.12
type StringTemplate struct {
// contains filtered or unexported fields
}
func NewStringTemplate ¶ added in v1.2.12
func NewStringTemplate(template string, args any) *StringTemplate
NewStringTemplate 创建一个字符串模板,使用支持的内容作为参数,支持的内容有:结构体(指针),map[string]string,*map[string]string
- template: 模板字符串
- args: 参数,如果是结构体(指针),需要指定cpc tag,并且目前只支持uint, int, float, string, bool和嵌套结构体类型的成员字段
example:
type User struct { Name string `cpc:"key:name"` Age int `cpc:"key:age,omitempty"` Male bool `cpc:"key:male,default:true"` } user := &User{ Name: "test", Age: 0, } template := "name: ${name}, age: ${age}, male: ${male}" result := NewStringTemplate(template, user).Parse() fmt.Println(result) // name: test, age: ${age}, male: true
func NewStringTemplateWithCustomSignals ¶ added in v1.2.12
func NewStringTemplateWithCustomSignals(template string, arguments map[string]string, startSignals, endSignals string) *StringTemplate
NewStringTemplateWithCustomSignals 创建一个字符串模板,使用map[string]string作为参数,并且可以自定义模板开始和结束符号
- template: 模板字符串
- arguments: 参数
- startSignals: 模板开始符号,长度必须和endSignals一样
- endSignals: 模板结束符号,长度必须和startSignals一样
example:
template := "name: $@name@, age: $@age@" arguments := map[string]string{ "name": "test", "age": "18", } result := NewStringTemplateWithCustomSignals(template, arguments, "@", "@").Parse() fmt.Println(result) // name: test, age: 18
func NewStringTemplateWithMap ¶ added in v1.2.12
func NewStringTemplateWithMap(template string, arguments map[string]string) *StringTemplate
NewStringTemplateWithMap 创建一个字符串模板,使用map[string]string作为参数
- template: 模板字符串
- arguments: 参数
example:
template := "name: ${name}, age: ${age}" arguments := map[string]string{ "name": "test", "age": "18", } result := NewStringTemplateWithMap(template, arguments).Parse() fmt.Println(result) // name: test, age: 18
func (*StringTemplate) Parse ¶ added in v1.2.12
func (t *StringTemplate) Parse() string