gitee.com/sy_183/go-common@v1.0.5-0.20231205030221-958cfe129b47/def/any.go (about) 1 package def 2 3 import "reflect" 4 5 func SetAny[O any](o O, def O) O { 6 if reflect.ValueOf(o).IsNil() { 7 return def 8 } 9 return o 10 } 11 12 func SetterAny[O any](o O, setter func() O) O { 13 if reflect.ValueOf(o).IsNil() { 14 return setter() 15 } 16 return o 17 } 18 19 func SetAnyP[O any](op *O, def O) { 20 if reflect.ValueOf(*op).IsNil() { 21 *op = def 22 } 23 } 24 25 func SetterAnyP[O any](op *O, setter func() O) { 26 if reflect.ValueOf(*op).IsNil() { 27 *op = setter() 28 } 29 }