Initial QSfera import
This commit is contained in:
+82
@@ -0,0 +1,82 @@
|
||||
# Reflects
|
||||
|
||||
`reflects` Provide extends reflect util functions.
|
||||
|
||||
- some features
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
go get github.com/gookit/goutil/reflects
|
||||
```
|
||||
|
||||
## Go docs
|
||||
|
||||
- [Go docs](https://pkg.go.dev/github.com/gookit/goutil/reflects)
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
import "github.com/gookit/goutil/reflects"
|
||||
|
||||
// get struct field value
|
||||
reflects.GetFieldValue(obj, "Name")
|
||||
```
|
||||
|
||||
## Functions API
|
||||
|
||||
> **Note**: doc by run `go doc ./reflects`
|
||||
|
||||
```go
|
||||
func BaseTypeVal(v reflect.Value) (value any, err error)
|
||||
func ConvSlice(oldSlRv reflect.Value, newElemTyp reflect.Type) (rv reflect.Value, err error)
|
||||
func EachMap(mp reflect.Value, fn func(key, val reflect.Value))
|
||||
func EachStrAnyMap(mp reflect.Value, fn func(key string, val any))
|
||||
func Elem(v reflect.Value) reflect.Value
|
||||
func FlatMap(rv reflect.Value, fn FlatFunc)
|
||||
func HasChild(v reflect.Value) bool
|
||||
func Indirect(v reflect.Value) reflect.Value
|
||||
func IsAnyInt(k reflect.Kind) bool
|
||||
func IsArrayOrSlice(k reflect.Kind) bool
|
||||
func IsEmpty(v reflect.Value) bool
|
||||
func IsEmptyValue(v reflect.Value) bool
|
||||
func IsEqual(src, dst any) bool
|
||||
func IsFunc(val any) bool
|
||||
func IsIntx(k reflect.Kind) bool
|
||||
func IsNil(v reflect.Value) bool
|
||||
func IsSimpleKind(k reflect.Kind) bool
|
||||
func IsUintX(k reflect.Kind) bool
|
||||
func Len(v reflect.Value) int
|
||||
func SetRValue(rv, val reflect.Value)
|
||||
func SetUnexportedValue(rv reflect.Value, value any)
|
||||
func SetValue(rv reflect.Value, val any) error
|
||||
func SliceElemKind(typ reflect.Type) reflect.Kind
|
||||
func SliceSubKind(typ reflect.Type) reflect.Kind
|
||||
func String(rv reflect.Value) string
|
||||
func ToString(rv reflect.Value) (str string, err error)
|
||||
func UnexportedValue(rv reflect.Value) any
|
||||
func ValToString(rv reflect.Value, defaultAsErr bool) (str string, err error)
|
||||
func ValueByKind(val any, kind reflect.Kind) (rv reflect.Value, err error)
|
||||
func ValueByType(val any, typ reflect.Type) (rv reflect.Value, err error)
|
||||
type BKind uint
|
||||
func ToBKind(kind reflect.Kind) BKind
|
||||
func ToBaseKind(kind reflect.Kind) BKind
|
||||
type FlatFunc func(path string, val reflect.Value)
|
||||
type Type interface{ ... }
|
||||
func TypeOf(v any) Type
|
||||
type Value struct{ ... }
|
||||
func ValueOf(v any) Value
|
||||
func Wrap(rv reflect.Value) Value
|
||||
```
|
||||
|
||||
## Testings
|
||||
|
||||
```shell
|
||||
go test -v ./reflects/...
|
||||
```
|
||||
|
||||
Test limit by regexp:
|
||||
|
||||
```shell
|
||||
go test -v -run ^TestSetByKeys ./reflects/...
|
||||
```
|
||||
Reference in New Issue
Block a user