MCPcopy
hub / github.com/duke-git/lancet / cloneArray

Method cloneArray

convertor/convertor_internal.go:92–115  ·  view source on GitHub ↗
(v reflect.Value)

Source from the content-addressed store, hash-verified

90}
91
92func (c *cloner) cloneArray(v reflect.Value) reflect.Value {
93 if v.IsNil() {
94 return reflect.Zero(v.Type())
95 }
96
97 arr := reflect.MakeSlice(v.Type(), v.Len(), v.Len())
98
99 for i := 0; i < v.Len(); i++ {
100 val := c.clone(v.Index(i))
101
102 if !val.IsValid() {
103 continue
104 }
105
106 item := arr.Index(i)
107 if !item.CanSet() {
108 continue
109 }
110
111 item.Set(val.Convert(item.Type()))
112 }
113
114 return arr
115}
116
117func (c *cloner) cloneMap(v reflect.Value) reflect.Value {
118 if v.IsNil() {

Callers 1

cloneMethod · 0.95

Calls 4

cloneMethod · 0.95
SetMethod · 0.65
IsNilMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected