cheng029 发表于 2018-9-20 06:09:32

golang路上的小学生系列

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
  // Method returns the i'th method in the type's method set.
  // It panics if i is not in the range [0, NumMethod()).
  //
  // For a non-interface type T or *T, the returned Method's Type and Func
  // fields describe a function whose first argument is the receiver.
  //
  // For an interface type, the returned Method's Type field gives the
  // method signature, without a receiver, and the Func field is nil.
  Method(int) Method
  // MethodByName returns the method with that name in the type's
  // method set and a boolean indicating if the method was found.
  //
  // For a non-interface type T or *T, the returned Method's Type and Func
  // fields describe a function whose first argument is the receiver.
  //
  // For an interface type, the returned Method's Type field gives the
  // method signature, without a receiver, and the Func field is nil.
  MethodByName(string) (Method, bool)
  // NumMethod returns the number of exported methods in the type's method set.
  NumMethod() int
  // Name returns the type's name within its package.
  // It returns an empty string for unnamed types.
  Name() string
  // PkgPath returns a named type's package path, that is, the import path

  // that uniquely>  // If the type was predeclared (string, error) or unnamed (*T, struct{}, []int),
  // the package path will be the empty string.
  PkgPath() string

  //>  // 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>  // 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>  // It panics if the type's Kind is not one of the

  //>  Bits() int
  // ChanDir returns a channel type's direction.
  // It panics if the type's Kind is not Chan.
  ChanDir() ChanDir
  // IsVariadic reports whether a function type's final input parameter
  // is a "..." parameter. If so, t.In(t.NumIn() - 1) returns the parameter's
  // implicit actual type []T.
  //
  // For concreteness, if t represents func(x int, y ... float64), then
  //
  //t.NumIn() == 2
  //t.In(0) is the reflect.Type for "int"
  //t.In(1) is the reflect.Type for "[]float64"
  //t.IsVariadic() == true
  //
  // IsVariadic panics if the type's Kind is not Func.
  IsVariadic() bool
  // 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
  // FieldByIndex returns the nested field corresponding
  // to the index sequence. It is equivalent to calling Field
  // successively for each index i.
  // It panics if the type's Kind is not Struct.
  FieldByIndex(index []int) StructField
  // FieldByName returns the struct field with the given name
  // and a boolean indicating if the field was found.
  FieldByName(name string) (StructField, bool)
  // FieldByNameFunc returns the struct field with a name
  // that satisfies the match function and a boolean indicating if
  // the field was found.
  //
  // FieldByNameFunc considers the fields in the struct itself
  // and then the fields in any anonymous structs, in breadth first order,
  // stopping at the shallowest nesting depth containing one or more
  // fields satisfying the match function. If multiple fields at that depth
  // satisfy the match function, they cancel each other
  // and FieldByNameFunc returns no match.
  // This behavior mirrors Go's handling of name lookup in
  // structs containing anonymous fields.
  FieldByNameFunc(match func(string) bool) (StructField, bool)
  // In returns the type of a function type's i'th input parameter.
  // It panics if the type's Kind is not Func.
  // It panics if i is not in the range [0, NumIn()).
  In(i int) Type
  // 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
  // NumIn returns a function type's input parameter count.
  // It panics if the type's Kind is not Func.
  NumIn() int
  // NumOut returns a function type's output parameter count.
  // It panics if the type's Kind is not Func.
  NumOut() int
  // Out returns the type of a function type's i'th output parameter.
  // It panics if the type's Kind is not Func.
  // It panics if i is not in the range [0, NumOut()).
  Out(i int) Type
  // contains filtered or unexported methods
  }

页: [1]
查看完整版本: golang路上的小学生系列