gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/reflectx/ref-desc-type-slice.go (about) 1 package reflectx 2 3 import ( 4 "gitee.com/zhongguo168a/gocodes/datax/schemax" 5 ) 6 7 type ArrayTypeRef struct { 8 } 9 10 func (f *ArrayTypeRef) RefHas(field string) bool { 11 switch field { 12 case "Elem": 13 return true 14 } 15 return false 16 } 17 func (f *ArrayTypeRef) RefGet(target IRefObject, ArrayType string) (val interface{}, isNil bool) { 18 obj := target.(*schemax.ArrayType) 19 switch ArrayType { 20 case "Elem": 21 return obj.Elem, obj.Elem == nil 22 } 23 return nil, true 24 } 25 26 func (f *ArrayTypeRef) RefSet(target IRefObject, ArrayType string, val interface{}) { 27 obj := target.(*schemax.ArrayType) 28 switch ArrayType { 29 case "Elem": 30 obj.Elem = val.(schemax.IType) 31 } 32 return 33 } 34 35 func (f *ArrayTypeRef) RefNew() IRefObject { 36 return &schemax.ArrayType{} 37 } 38 39 func (f *ArrayTypeRef) RefType() string { 40 return "array" 41 }