-
Notifications
You must be signed in to change notification settings - Fork 2
/
extra.go
76 lines (66 loc) · 1.64 KB
/
extra.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
"context"
"fmt"
"github.com/rentiansheng/mapper"
)
/***************************
@author: tiansheng.ren
@date: 2022/11/11
@desc:
***************************/
var (
ctx context.Context
)
func main() {
sliceStruct()
sliceMap()
MapKey()
}
func sliceStruct() {
items := []struct {
ID int64 `json:"id"`
Name string `json:"name"`
}{
{ID: 1, Name: "name1"}, {ID: 2, Name: "name2"},
}
idValues, nameValues := make([]int, 0), make([]string, 0)
if err := mapper.ObjectsField(ctx, "id", items, &idValues); err != nil {
fmt.Println("extractor struct field error.", err.Error())
return
}
if err := mapper.ObjectsField(ctx, "name", items, &nameValues); err != nil {
fmt.Println("extractor struct field error. ", err.Error())
return
}
fmt.Println("struct field id", idValues)
fmt.Println("struct field name", nameValues)
}
func sliceMap() {
items := []map[string]int{
{"id": 1, "name": 1}, {"id": 2, "name": 2},
}
idValues, nameValues := make([]int, 0), make([]int64, 0)
if err := mapper.ObjectsField(ctx, "id", items, &idValues); err != nil {
fmt.Println("extractor struct field error.", err.Error())
return
}
if err := mapper.ObjectsField(ctx, "name", items, &nameValues); err != nil {
fmt.Println("extractor struct field error. ", err.Error())
return
}
fmt.Println("map field id", idValues)
fmt.Println("map field name", nameValues)
}
func MapKey() {
items := map[string]struct{}{
"1": {},
"2": {},
}
keys := make([]string, 0)
if err := mapper.MapKeys(ctx, items, &keys); err != nil {
fmt.Println("extractor struct field error. ", err.Error())
return
}
fmt.Println("map keys", keys)
}