reflect

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Copy added in v0.14.0

func Copy(dst, src Value) int

Copy copies the contents of src into dst until either dst has been filled or src has been exhausted.

func DeepEqual added in v0.14.0

func DeepEqual(x, y interface{}) bool

func Swapper

func Swapper(slice interface{}) func(i, j int)

Types

type Kind

type Kind uintptr
const (
	Invalid Kind = iota
	Bool
	Int
	Int8
	Int16
	Int32
	Int64
	Uint
	Uint8
	Uint16
	Uint32
	Uint64
	Uintptr
	Float32
	Float64
	Complex64
	Complex128
	String
	UnsafePointer
	Chan
	Interface
	Ptr
	Slice
	Array
	Func
	Map
	Struct
)

Copied from reflect/type.go https://golang.org/src/reflect/type.go?s=8302:8316#L217

func (Kind) String

func (k Kind) String() string

type MapIter added in v0.5.0

type MapIter struct {
}

func (*MapIter) Key added in v0.5.0

func (it *MapIter) Key() Value

func (*MapIter) Next added in v0.5.0

func (it *MapIter) Next() bool

func (*MapIter) Value added in v0.5.0

func (it *MapIter) Value() Value

type SliceHeader

type SliceHeader struct {
	Data uintptr
	Len  uintptr
	Cap  uintptr
}

type StringHeader

type StringHeader struct {
	Data uintptr
	Len  uintptr
}

type StructField

type StructField struct {
	// Name indicates the field name.
	Name string

	// PkgPath is the package path where the struct containing this field is
	// declared for unexported fields, or the empty string for exported fields.
	PkgPath string

	Type      Type
	Tag       StructTag // field tag string
	Anonymous bool
	Offset    uintptr
}

A StructField describes a single field in a struct.

type StructTag added in v0.14.0

type StructTag string

A StructTag is the tag string in a struct field.

func (StructTag) Get added in v0.14.0

func (tag StructTag) Get(key string) string

Get returns the value associated with key in the tag string.

func (StructTag) Lookup added in v0.14.0

func (tag StructTag) Lookup(key string) (value string, ok bool)

Lookup returns the value associated with key in the tag string.

type Type

type Type interface {

	// Align returns the alignment in bytes of a value of
	// this type when allocated in memory.
	Align() int

	// FieldAlign returns the alignment in bytes of a value of
	// this type when used as a field in a struct.
	FieldAlign() int

	// NumMethod returns the number of exported methods in the type's method set.
	NumMethod() int

	// Name returns the type's name within its package for a defined type.
	// For other (non-defined) types it returns the empty string.
	Name() string

	// Size returns the number of bytes needed to store
	// a value of the given type; it is analogous to unsafe.Sizeof.
	Size() uintptr

	// String returns a string representation of the type.
	// The string representation may use shortened package names
	// (e.g., base64 instead of "encoding/base64") and is not
	// guaranteed to be unique among types. To test for type identity,
	// compare the Types directly.
	String() string

	// Kind returns the specific kind of this type.
	Kind() Kind

	// Implements reports whether the type implements the interface type u.
	Implements(u Type) bool

	// AssignableTo reports whether a value of the type is assignable to type u.
	AssignableTo(u Type) bool

	// ConvertibleTo reports whether a value of the type is convertible to type u.
	ConvertibleTo(u Type) bool

	// Comparable reports whether values of this type are comparable.
	Comparable() bool

	// Bits returns the size of the type in bits.
	// It panics if the type's Kind is not one of the
	// sized or unsized Int, Uint, Float, or Complex kinds.
	Bits() int

	// Elem returns a type's element type.
	// It panics if the type's Kind is not Array, Chan, Map, Ptr, or Slice.
	Elem() Type

	// Field returns a struct type's i'th field.
	// It panics if the type's Kind is not Struct.
	// It panics if i is not in the range [0, NumField()).
	Field(i int) StructField

	// Key returns a map type's key type.
	// It panics if the type's Kind is not Map.
	Key() Type

	// Len returns an array type's length.
	// It panics if the type's Kind is not Array.
	Len() int

	// NumField returns a struct type's field count.
	// It panics if the type's Kind is not Struct.
	NumField() int
}

Type is the representation of a Go type.

Not all methods apply to all kinds of types. Restrictions, if any, are noted in the documentation for each method. Use the Kind method to find out the kind of type before calling kind-specific methods. Calling a method inappropriate to the kind of type causes a run-time panic.

Type values are comparable, such as with the == operator, so they can be used as map keys. Two Type values are equal if they represent identical types.

func PtrTo added in v0.17.0

func PtrTo(t Type) Type

func TypeOf

func TypeOf(i interface{}) Type

type TypeError added in v0.8.0

type TypeError struct {
	Method string
}

TypeError is the error that is used in a panic when invoking a method on a type that is not applicable to that type.

func (*TypeError) Error added in v0.8.0

func (e *TypeError) Error() string

type Value

type Value struct {
	// contains filtered or unexported fields
}

func Append added in v0.14.0

func Append(s Value, x ...Value) Value

Append appends the values x to a slice s and returns the resulting slice. As in Go, each x's value must be assignable to the slice's element type.

func Indirect

func Indirect(v Value) Value

func MakeMap added in v0.14.0

func MakeMap(typ Type) Value

MakeMap creates a new map with the specified type.

func MakeSlice

func MakeSlice(typ Type, len, cap int) Value

func New added in v0.7.0

func New(typ Type) Value

New is the reflect equivalent of the new(T) keyword, returning a pointer to a new value of the given type.

func ValueOf

func ValueOf(i interface{}) Value

func Zero added in v0.7.0

func Zero(typ Type) Value

func (Value) Addr

func (v Value) Addr() Value

func (Value) Bool

func (v Value) Bool() bool

func (Value) Bytes

func (v Value) Bytes() []byte

func (Value) CanAddr

func (v Value) CanAddr() bool

func (Value) CanInterface

func (v Value) CanInterface() bool

func (Value) CanSet

func (v Value) CanSet() bool

func (Value) Cap

func (v Value) Cap() int

Cap returns the capacity of this value for arrays, channels and slices. For other types, it panics.

func (Value) Complex

func (v Value) Complex() complex128

func (Value) Convert added in v0.14.0

func (v Value) Convert(t Type) Value

func (Value) Elem

func (v Value) Elem() Value

func (Value) Field

func (v Value) Field(i int) Value

Field returns the value of the i'th field of this struct.

func (Value) FieldByIndex added in v0.14.0

func (v Value) FieldByIndex(index []int) Value

FieldByIndex returns the nested field corresponding to index.

func (Value) FieldByName added in v0.14.0

func (v Value) FieldByName(name string) Value

func (Value) Float

func (v Value) Float() float64

func (Value) Index

func (v Value) Index(i int) Value

func (Value) Int

func (v Value) Int() int64

func (Value) Interface

func (v Value) Interface() interface{}

func (Value) IsNil

func (v Value) IsNil() bool

IsNil returns whether the value is the nil value. It panics if the value Kind is not a channel, map, pointer, function, slice, or interface.

func (Value) IsValid

func (v Value) IsValid() bool

func (Value) Kind

func (v Value) Kind() Kind

func (Value) Len

func (v Value) Len() int

Len returns the length of this value for slices, strings, arrays, channels, and maps. For other types, it panics.

func (Value) MapIndex

func (v Value) MapIndex(key Value) Value

func (Value) MapKeys

func (v Value) MapKeys() []Value

func (Value) MapRange added in v0.5.0

func (v Value) MapRange() *MapIter

func (Value) NumField

func (v Value) NumField() int

NumField returns the number of fields of this struct. It panics for other value types.

func (Value) NumMethod added in v0.18.0

func (v Value) NumMethod() int

func (Value) OverflowFloat added in v0.18.0

func (v Value) OverflowFloat(x float64) bool

func (Value) OverflowInt added in v0.14.0

func (v Value) OverflowInt(x int64) bool

func (Value) OverflowUint added in v0.14.0

func (v Value) OverflowUint(x uint64) bool

func (Value) Pointer

func (v Value) Pointer() uintptr

Pointer returns the underlying pointer of the given value for the following types: chan, map, pointer, unsafe.Pointer, slice, func.

func (Value) RawType added in v0.18.0

func (v Value) RawType() rawType

Internal function only, do not use.

RawType returns the raw, underlying type code. It is used in the runtime package and needs to be exported for the runtime package to access it.

func (Value) Set

func (v Value) Set(x Value)

func (Value) SetBool

func (v Value) SetBool(x bool)

func (Value) SetBytes added in v0.18.0

func (v Value) SetBytes(x []byte)

func (Value) SetCap added in v0.18.0

func (v Value) SetCap(n int)

func (Value) SetComplex

func (v Value) SetComplex(x complex128)

func (Value) SetFloat

func (v Value) SetFloat(x float64)

func (Value) SetInt

func (v Value) SetInt(x int64)

func (Value) SetLen added in v0.18.0

func (v Value) SetLen(n int)

func (Value) SetMapIndex added in v0.14.0

func (v Value) SetMapIndex(key, elem Value)

func (Value) SetString

func (v Value) SetString(x string)

func (Value) SetUint

func (v Value) SetUint(x uint64)

func (Value) Slice

func (v Value) Slice(i, j int) Value

func (Value) String

func (v Value) String() string

func (Value) Type

func (v Value) Type() Type

func (Value) Uint

func (v Value) Uint() uint64

type ValueError

type ValueError struct {
	Method string
}

func (*ValueError) Error

func (e *ValueError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL