Documentation
¶
Overview ¶
Package convertor implements some functions to convert data.
Index ¶
- func ColorHexToRGB(colorHex string) (red, green, blue int)
- func ColorRGBToHex(red, green, blue int) string
- func DecodeByte(data []byte, target any) error
- func EncodeByte(data any) ([]byte, error)
- func MapToSlice[T any, K comparable, V any](aMap map[K]V, iteratee func(K, V) T) []T
- func StructToMap(value any) (map[string]any, error)
- func ToBool(s string) (bool, error)
- func ToBytes(value any) ([]byte, error)
- func ToChannel[T any](array []T) <-chan T
- func ToChar(s string) []string
- func ToFloat(value any) (float64, error)
- func ToInt(value any) (int64, error)
- func ToJson(value any) (string, error)
- func ToMap[T any, K comparable, V any](array []T, iteratee func(T) (K, V)) map[K]V
- func ToPointer[T any](value T) *T
- func ToString(value any) string
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ColorHexToRGB ¶
ColorHexToRGB convert hex color to rgb color. Play: https://go.dev/play/p/o7_ft-JCJBV
Example ¶
colorHex := "#003366" r, g, b := ColorHexToRGB(colorHex) fmt.Println(r, g, b)
Output: 0 51 102
func ColorRGBToHex ¶
ColorRGBToHex convert rgb color to hex color. Play: https://go.dev/play/p/nzKS2Ro87J1
Example ¶
r := 0 g := 51 b := 102 colorHex := ColorRGBToHex(r, g, b) fmt.Println(colorHex)
Output: #003366
func DecodeByte ¶
DecodeByte decode byte slice data to target object. Play: https://go.dev/play/p/zI6xsmuQRbn
Example ¶
var obj string
byteData := []byte{6, 12, 0, 3, 97, 98, 99}
err := DecodeByte(byteData, &obj)
if err != nil {
return
}
fmt.Println(obj)
Output: abc
func EncodeByte ¶
EncodeByte encode data to byte slice. Play: https://go.dev/play/p/DVmM1G5JfuP
Example ¶
byteData, _ := EncodeByte("abc")
fmt.Println(byteData)
Output: [6 12 0 3 97 98 99]
func MapToSlice ¶
func MapToSlice[T any, K comparable, V any](aMap map[K]V, iteratee func(K, V) T) []T
MapToSlice convert map to slice based on iteratee function. Play: https://go.dev/play/p/dmX4Ix5V6Wl
Example ¶
aMap := map[string]int{"a": 1, "b": 2, "c": 3}
result := MapToSlice(aMap, func(key string, value int) string {
return key + ":" + strconv.Itoa(value)
})
fmt.Println(result) //[]string{"a:1", "c:3", "b:2"} (random order)
func StructToMap ¶
StructToMap convert struct to map, only convert exported struct field map key is specified same as struct field tag `json` value. Play: https://go.dev/play/p/KYGYJqNUBOI
Example ¶
type People struct {
Name string `json:"name"`
age int
}
p := People{
"test",
100,
}
pm, _ := StructToMap(p)
fmt.Println(pm)
Output: map[name:test]
func ToBool ¶
ToBool convert string to boolean. Play: https://go.dev/play/p/ARht2WnGdIN
Example ¶
cases := []string{"1", "true", "True", "false", "False", "0", "123", "0.0", "abc"}
for i := 0; i < len(cases); i++ {
result, _ := ToBool(cases[i])
fmt.Println(result)
}
Output: true true true false false false false false false
func ToBytes ¶
ToBytes convert value to byte slice. Play: https://go.dev/play/p/fAMXYFDvOvr
Example ¶
result1, _ := ToBytes(1)
result2, _ := ToBytes("abc")
result3, _ := ToBytes(true)
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output: [0 0 0 0 0 0 0 1] [97 98 99] [116 114 117 101]
func ToChannel ¶
func ToChannel[T any](array []T) <-chan T
ToChannel convert a slice of elements to a read-only channel. Play: https://go.dev/play/p/hOx_oYZbAnL
Example ¶
ch := ToChannel([]int{1, 2, 3})
result1 := <-ch
result2 := <-ch
result3 := <-ch
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output: 1 2 3
func ToChar ¶
ToChar convert string to char slice. Play: https://go.dev/play/p/JJ1SvbFkVdM
Example ¶
result1 := ToChar("")
result2 := ToChar("abc")
result3 := ToChar("1 2#3")
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output: [] [a b c] [1 2 # 3]
func ToFloat ¶
ToFloat convert value to float64, if input is not a float return 0.0 and error. Play: https://go.dev/play/p/4YTmPCibqHJ
Example ¶
result1, _ := ToFloat("")
result2, _ := ToFloat("abc")
result3, _ := ToFloat("-1")
result4, _ := ToFloat("-.11")
result5, _ := ToFloat("1.23e3")
result6, _ := ToFloat(true)
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
fmt.Println(result5)
fmt.Println(result6)
Output: 0 0 -1 -0.11 1230 0
func ToInt ¶
ToInt convert value to int64 value, if input is not numerical, return 0 and error. Play: https://go.dev/play/p/9_h9vIt-QZ_b
Example ¶
result1, _ := ToInt("123")
result2, _ := ToInt("-123")
result3, _ := ToInt(float64(12.3))
result4, _ := ToInt("abc")
result5, _ := ToInt(true)
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
fmt.Println(result5)
Output: 123 -123 12 0 0
func ToJson ¶
ToJson convert value to a json string. Play: https://go.dev/play/p/2rLIkMmXWvR
Example ¶
aMap := map[string]int{"a": 1, "b": 2, "c": 3}
result1, err := ToJson(aMap)
if err != nil {
fmt.Printf("%v", err)
}
fmt.Println(result1)
Output: {"a":1,"b":2,"c":3}
func ToMap ¶
func ToMap[T any, K comparable, V any](array []T, iteratee func(T) (K, V)) map[K]V
ToMap convert a slice of structs to a map based on iteratee function. Play: https://go.dev/play/p/tVFy7E-t24l
Example ¶
type Message struct {
name string
code int
}
messages := []Message{
{name: "Hello", code: 100},
{name: "Hi", code: 101},
}
result := ToMap(messages, func(msg Message) (int, string) {
return msg.code, msg.name
})
fmt.Println(result)
Output: map[100:Hello 101:Hi]
func ToPointer ¶
func ToPointer[T any](value T) *T
ToPointer returns a pointer to passed value. Play: https://go.dev/play/p/ASf_etHNlw1
Example ¶
result := ToPointer(123) fmt.Println(*result)
Output: 123
func ToString ¶
ToString convert value to string for number, string, []byte, will convert to string for other type (slice, map, array, struct) will call json.Marshal. Play: https://go.dev/play/p/nF1zOOslpQq
Example ¶
result1 := ToString("")
result2 := ToString(nil)
result3 := ToString(0)
result4 := ToString(1.23)
result5 := ToString(true)
result6 := ToString(false)
result7 := ToString([]int{1, 2, 3})
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
fmt.Println(result5)
fmt.Println(result6)
fmt.Println(result7)
Output: 0 1.23 true false [1,2,3]
Types ¶
This section is empty.