package attribute
import (
"reflect"
)
func BoolSliceValue (v []bool ) any {
var zero bool
cp := reflect .New (reflect .ArrayOf (len (v ), reflect .TypeOf (zero ))).Elem ()
reflect .Copy (cp , reflect .ValueOf (v ))
return cp .Interface ()
}
func Int64SliceValue (v []int64 ) any {
var zero int64
cp := reflect .New (reflect .ArrayOf (len (v ), reflect .TypeOf (zero ))).Elem ()
reflect .Copy (cp , reflect .ValueOf (v ))
return cp .Interface ()
}
func Float64SliceValue (v []float64 ) any {
var zero float64
cp := reflect .New (reflect .ArrayOf (len (v ), reflect .TypeOf (zero ))).Elem ()
reflect .Copy (cp , reflect .ValueOf (v ))
return cp .Interface ()
}
func StringSliceValue (v []string ) any {
var zero string
cp := reflect .New (reflect .ArrayOf (len (v ), reflect .TypeOf (zero ))).Elem ()
reflect .Copy (cp , reflect .ValueOf (v ))
return cp .Interface ()
}
func AsBoolSlice (v any ) []bool {
rv := reflect .ValueOf (v )
if rv .Type ().Kind () != reflect .Array {
return nil
}
cpy := make ([]bool , rv .Len ())
if len (cpy ) > 0 {
_ = reflect .Copy (reflect .ValueOf (cpy ), rv )
}
return cpy
}
func AsInt64Slice (v any ) []int64 {
rv := reflect .ValueOf (v )
if rv .Type ().Kind () != reflect .Array {
return nil
}
cpy := make ([]int64 , rv .Len ())
if len (cpy ) > 0 {
_ = reflect .Copy (reflect .ValueOf (cpy ), rv )
}
return cpy
}
func AsFloat64Slice (v any ) []float64 {
rv := reflect .ValueOf (v )
if rv .Type ().Kind () != reflect .Array {
return nil
}
cpy := make ([]float64 , rv .Len ())
if len (cpy ) > 0 {
_ = reflect .Copy (reflect .ValueOf (cpy ), rv )
}
return cpy
}
func AsStringSlice (v any ) []string {
rv := reflect .ValueOf (v )
if rv .Type ().Kind () != reflect .Array {
return nil
}
cpy := make ([]string , rv .Len ())
if len (cpy ) > 0 {
_ = reflect .Copy (reflect .ValueOf (cpy ), rv )
}
return cpy
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .