reflect2_kind.go 916 B

123456789101112131415161718192021222324252627282930
  1. package reflect2
  2. import (
  3. "reflect"
  4. "unsafe"
  5. )
  6. // DefaultTypeOfKind return the non aliased default type for the kind
  7. func DefaultTypeOfKind(kind reflect.Kind) Type {
  8. return kindTypes[kind]
  9. }
  10. var kindTypes = map[reflect.Kind]Type{
  11. reflect.Bool: TypeOf(true),
  12. reflect.Uint8: TypeOf(uint8(0)),
  13. reflect.Int8: TypeOf(int8(0)),
  14. reflect.Uint16: TypeOf(uint16(0)),
  15. reflect.Int16: TypeOf(int16(0)),
  16. reflect.Uint32: TypeOf(uint32(0)),
  17. reflect.Int32: TypeOf(int32(0)),
  18. reflect.Uint64: TypeOf(uint64(0)),
  19. reflect.Int64: TypeOf(int64(0)),
  20. reflect.Uint: TypeOf(uint(0)),
  21. reflect.Int: TypeOf(int(0)),
  22. reflect.Float32: TypeOf(float32(0)),
  23. reflect.Float64: TypeOf(float64(0)),
  24. reflect.Uintptr: TypeOf(uintptr(0)),
  25. reflect.String: TypeOf(""),
  26. reflect.UnsafePointer: TypeOf(unsafe.Pointer(nil)),
  27. }