Documentation ¶
Overview ¶
Le paquet converter fournit des fonctions utiles pour convertir tout type de données.
Index ¶
- Variables
- func Clone[T any](e T, deep ...bool) T
- func CloneInterface(e any, deep ...bool) any
- func Convert(src, dest any, safe ...bool) bool
- func Is(e any, k Kind) bool
- func IsArray(e any) bool
- func IsBool(e any) bool
- func IsByte(e any) bool
- func IsChan(e any) bool
- func IsChar(e any) bool
- func IsComplex(e any) bool
- func IsFloat(e any) bool
- func IsFunc(e any) bool
- func IsInt(e any) bool
- func IsInteger(e any) bool
- func IsInterface(e any) bool
- func IsInvalid(e any) bool
- func IsMap(e any) bool
- func IsNil(e any) bool
- func IsNillable(e any) bool
- func IsNumber(e any) bool
- func IsPointer(e any) bool
- func IsReal(e any) bool
- func IsRune(e any) bool
- func IsSet(e any) bool
- func IsSlice(e any) bool
- func IsString(e any) bool
- func IsStruct(e any) bool
- func IsUint(e any) bool
- func IsZero(e any) bool
- func SetZero(dst any) bool
- func ToBool[T BoolType](src any, def ...T) T
- func ToChar[T CharType](src any, def ...T) T
- func ToComplex[T ComplexType](src any, def ...T) T
- func ToFloat[T FloatType](src any, def ...T) T
- func ToInt[T IntType](src any, def ...T) T
- func ToMap[K comparable, V any](src any, def ...map[K]V) (dest map[K]V)
- func ToSet[K comparable](src any, def ...map[K]struct{}) map[K]struct{}
- func ToSlice[T any](src any, def ...T) (dest []T)
- func ToString[T StringType](src any, def ...T) T
- func ToUint[T UintType](src any, def ...T) T
- type BoolType
- type CharType
- type ComplexType
- type FloatType
- type IntType
- type IntegerType
- type Kind
- type Kinder
- type NumberType
- type RealType
- type StringType
- type Type
- func (t Type) AssignableTo(e Type) bool
- func (t Type) ConvertibleTo(e Type) bool
- func (t Type) Elem() Type
- func (t Type) EquivalentTo(e Type) bool
- func (t Type) Fields() []reflect.StructField
- func (t Type) Is(k Kind) bool
- func (t Type) IsSet() bool
- func (t Type) Key() Type
- func (t Type) MapFields() map[string]reflect.StructField
- func (t Type) Pointer() Value
- func (t Type) Zero() Value
- type UintType
- type Value
- func (v Value) AddToSet(e Value)
- func (v Value) Convert(t Type) Value
- func (v Value) Elem() Value
- func (v Value) Field(i int, deep ...bool) Value
- func (v Value) FieldByName(n string, deep ...bool) Value
- func (v Value) Fields() []reflect.StructField
- func (v Value) Index(i int, deep ...bool) Value
- func (v Value) Is(k Kind) bool
- func (v Value) IsNil() bool
- func (v Value) IsSet() bool
- func (v Value) IsZero() bool
- func (v Value) Keys() []Value
- func (v Value) MapIndex(k Value, deep ...bool) Value
- func (v Value) Pointer() Value
- func (v Value) Set(e Value)
- func (v Value) SetElem(e Value)
- func (v Value) SetElemVal(e any)
- func (v Value) SetMapIndex(k, e Value)
- func (v Value) SetVal(e any)
- func (v Value) Type() Type
- func (v Value) Type0() Type
- func (v Value) TypeElem() Type
- func (v Value) Zero() Value
Constants ¶
This section is empty.
Variables ¶
var ( Invalid = Kind{reflect.Invalid} Bool = Kind{reflect.Bool} Array = Kind{reflect.Array} Chan = Kind{reflect.Chan} Func = Kind{reflect.Func} Interface = Kind{reflect.Interface} Map = Kind{reflect.Map} Ptr = Kind{reflect.Ptr} Slice = Kind{reflect.Slice} String = Kind{reflect.String} Struct = Kind{reflect.Struct} Byte = Kind{reflect.Uint8} Rune = Kind{reflect.Int32} Int = Kind{reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64} Uint = Kind{reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr} Integer = Int.Or(Uint) Float = Kind{reflect.Float32, reflect.Float64} Complex = Kind{reflect.Complex64, reflect.Complex128} Real = Integer.Or(Float) Number = Real.Or(Complex) Char = Kind{reflect.Uint8, reflect.Int32} Nillable = Kind{reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Slice, reflect.Interface} )
Functions ¶
func Clone ¶
Clone retourne une copie de l’élément fournit en paramètre. Si deep est fourni et vaut true, le clonage s’effectue récursivement.
func CloneInterface ¶
CloneInterface est l’équivalent rapide de Clone si la valeur de sortie n’a pas besoin d’être typée.
func Convert ¶
Convert convertit la valeur du paramètre source vers le paramètre destination et retourne true si l’opération s’est effectuée avec succès. La destination doit être un pointeur, afin de pouvoir modifier sa valeur. Si le paramètre optionnel safe est fourni et vaut true, la destination n’est modifiée que si son type est équivalent à celui de la source (par exemple int vers int64, mais pas int vers string).
func IsInterface ¶
func IsNillable ¶
func SetZero ¶
SetZero réinitialise la variable pointée par le paramètre d’entrée à sa valeur initiale
func ToComplex ¶
func ToComplex[T ComplexType](src any, def ...T) T
func ToMap ¶
func ToMap[K comparable, V any](src any, def ...map[K]V) (dest map[K]V)
func ToSet ¶
func ToSet[K comparable](src any, def ...map[K]struct{}) map[K]struct{}
func ToString ¶
func ToString[T StringType](src any, def ...T) T
Types ¶
type ComplexType ¶
type ComplexType interface { ~complex64 | ~complex128 }
type IntegerType ¶
type Kind ¶
Kind est un ensemble de reflect.Kind. Il permet de faciliter la comparaison de types similaires.
type Kinder ¶
Kinder est une interface permettant de déterminer une sorte de type. Elle est implémentée par reflect.Type et reflect.Value
type NumberType ¶
type NumberType interface { RealType | ComplexType }
type RealType ¶
type RealType interface { IntegerType | FloatType }
type StringType ¶
type StringType interface { ~string }
type Type ¶
Type fournit des méthodes supplémentaires à reflect.Type dont elle hérite.
func PointerTo ¶
PointerTo retourne un type représentant un pointeur du type donné. Par exemple, si t est un type représentant int, le type retourné représente *int.
func SliceTypeOf ¶
SliceTypeOf retourne un type représentation une slice du type donné. Par exemple, si t est un type représentant int, le type retourné représente []int.
func (Type) AssignableTo ¶
AssignableTo se comporte comme la méthode équivalente de reflect.Type.
func (Type) ConvertibleTo ¶
ComvertibleTo se comporte comme la méthode équivalente de reflect.Type.
func (Type) Elem ¶
Elem retourne l’élément pointé par la valeur. Tout comme reflect.Type, elle panique si t n’est pas un pointeur, un array, un slice, une map ou un chan.
func (Type) EquivalentTo ¶
EquivalentTo vérifie la convertibilité dans les deux sens. Par exemple un int64 est équivalent à un int mais pas une interface.
func (Type) Fields ¶
func (t Type) Fields() []reflect.StructField
Fields retourne la liste des champs. t doit être une structure.
func (Type) Is ¶
Is vérifie si la valeur a un type appartenant à l’ensemble de sortes de types donné.
func (Type) MapFields ¶
func (t Type) MapFields() map[string]reflect.StructField
MapFields retourne la liste des champs indexés par leurs noms. t doit être une structure.
type Value ¶
Value fournit des méthodes supplémentaires à reflect.Value dont elle hérite.
func AddressableOf ¶
AddressableOf retourne une valeur de type donnée et qui est adressable, donc modifiable. C’est équivalent à PointerOf(t).Elem()
func PointerOf ¶
PointerOf retourne une valeur contenant un pointeur du type donné. Par exemple, si t représente un type int, la valeur retournée embarque une valeur de type *int, initialisée. Cet exemple est équivalent à ValueOf(new(int)).
func (Value) AddToSet ¶
AddToSet ajout une valeur dans le set de valeurs représenté par v. v doit donc être du type de la forme map[T]struct{}
func (Value) Convert ¶
Convert retourne la valeur convertie au type donné. La valeur n’est pas modifiée.
func (Value) Elem ¶
Elem retourne l’élément pointé par la valeur. Tout comme reflect.Value, elle panique si v n’est pas une interface ou un pointeur.
func (Value) Field ¶
Field retourne la valeur du iè champ. v doit être une structure. Si deep est vrai, force le typage interne.
func (Value) FieldByName ¶
FieldByName retourne la valeur du champ nommé n. v doit être une structure. Si deep est vrai, force le typage interne.
func (Value) Fields ¶
func (v Value) Fields() []reflect.StructField
Fields retourne la liste des champs. v doit être une structure.
func (Value) Index ¶
Index retourne la ième valeur d’un tableau. Si deep est fourni et est vrai, il force le retypage profond. Par exemple, si v représente []any{5}, v.Index(0) retourne la valeur 5 de type interface, mais v.Index(0, true) retourne la valeur 5 de type int.
func (Value) Is ¶
Is vérifie si la valeur a un type appartenant à l’ensemble de sortes de types donné.
func (Value) IsNil ¶
IsNil retourne vrai si la valeur est nulle. Contrairement à la méthode équivalente de reflect.Value, elle ne panique jamais.
func (Value) IsZero ¶
IsZero retourne vrai si la valeur est le zéro de son type. Contrairement à la méthode équivalente de reflect.Value, elle ne panique jamais.
func (Value) MapIndex ¶
MapIndex retourne la kème valeur d’une map. Si deep est fourni et est vrai, il force le retypage profond. Par exemple, si v représente map[string]any{"cinq": 5}, v.MapIndex(ValueOf("cinq")) retourne la valeur 5 de type interface, mais v.MapIndex(ValueOf("cinq"), true) retourne la valeur 5 de type int.
func (Value) Pointer ¶
Pointer retourne un pointeur vers la valeur. Si la valeur n’est pas adressable, elle retourne un pointeur initialisé vers une valeur du type de la valeur.
func (Value) SetElemVal ¶
SetElemVal est équivalent à SetElem mais avec une valeur concrète.
func (Value) SetMapIndex ¶
SetMapIndex agit comme la méthode équivalente de reflect.Value.
func (Value) Type0 ¶
Type retourne le type profond de la valeur. Généralement, cela est équivalent à v.Type(), sauf dans le cas ou la valeur est générée de façon interne, par exemple un élément d’une map de type map[any]any qui, bien qu’initialisée est considérée comme une interface mais pourrait contenir en vraie une string.