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 ConvertStructToStringMap(val any, keyPrefix ...string) map[string]string
- func Float32ToString[T ~float32](raw T) string
- func Float64ToString[T ~float64](raw T) string
- func Int64ToString[T ~int64](raw T) string
- func IntToString[T ~int](raw T) string
- 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 ReverseArray[T any](array []T) []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 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 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 Float32ToString ¶ added in v1.2.9
func Float64ToString ¶ added in v1.2.9
func Int64ToString ¶ added in v1.2.9
func IntToString ¶ added in v1.2.9
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 ReverseArray ¶ added in v1.2.9
func ReverseArray[T any](array []T) []T
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 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