Documentation
¶
Index ¶
- func CopyPointerSlice(ptrA any, ptrB any)
- func CreatePointerToSliceOfTypeAndSize(value any, size int) any
- func Flatten(elements ...any) []any
- func GetTagNames(v any) []string
- func GetTags(v any, tagName string) []string
- func GetTypedValue(value any) reflect.Value
- func InitializeMapsAndSlices(value any)
- func InterfaceToInterfaceSlice(in any) ([]any, error)
- func InterfaceToMapInterfaceInterface(m any) (map[any]any, error)
- func IsPointerToMap(value any) bool
- func IsPointerToSlice(value any) bool
- func IsPointerToStruct(value any) bool
- func IsSlice(value any) bool
- func IsStructOrPointerToStruct(value any) bool
- func ResolveBaseType(value any) reflect.Type
- func ResolveBaseTypeAndValue(value any) (reflect.Type, reflect.Value)
- func ResolveValueTo(value any, kind reflect.Kind) (reflect.Type, reflect.Value)
- func SliceInterfaceIterator(slice any) *sliceIterator
- func Unbox(val any) any
- func ValueToPointerValue(val any) any
- type Map
- type Slice
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyPointerSlice ¶
func Flatten ¶ added in v0.54.2
Flatten takes a variadic list of elements and flattens any slices or arrays found at the top level into a single []any slice. Non-slice elements are preserved as-is in the output. Pointers to slices/arrays are dereferenced before flattening.
Note: This function only performs one level of flattening. Nested slices within slices are not recursively flattened.
Examples:
Flatten(1, 2, 3) // returns []any{1, 2, 3}
Flatten([]int{1, 2}, 3) // returns []any{1, 2, 3}
Flatten([]int{1, 2}, []string{"a", "b"}) // returns []any{1, 2, "a", "b"}
Flatten(1, []int{2, 3}, 4, []string{"a"}) // returns []any{1, 2, 3, 4, "a"}
Flatten([3]int{1, 2, 3}) // returns []any{1, 2, 3} (arrays work too)
Flatten([]any{1, []int{2, 3}}) // returns []any{1, []int{2, 3}} (no recursive flattening)
slice := []int{1, 2}; Flatten(&slice) // returns []any{1, 2} (pointers are dereferenced)
func GetTagNames ¶ added in v0.51.2
GetTagNames returns a sorted list of distinct struct tag keys present on the fields of the given value. Works with structs, pointers to structs, and slices of structs. Returns an empty slice for nil or non-structs.
func GetTags ¶ added in v0.21.5
GetTags reads the values of tags with the name tagName. Tag values get extracted until the first comma. Best suited to read json and db tags.
func GetTypedValue ¶
func InitializeMapsAndSlices ¶
func InitializeMapsAndSlices(value any)
func IsPointerToMap ¶
func IsPointerToSlice ¶
func IsPointerToStruct ¶
func ResolveBaseType ¶
func ResolveBaseTypeAndValue ¶
func ResolveValueTo ¶
func SliceInterfaceIterator ¶
func SliceInterfaceIterator(slice any) *sliceIterator