Documentation ¶
Index ¶
- func GenerateTypeUsageCode(a reflect.Type) string
- func GetObject[T any]() (a T)
- func GetPkgName(a any) string
- func GetPkgNameV2[T any]() string
- func GetPkgNameV3(a any) string
- func GetPkgNameV4[T any](p *T) string
- func GetPkgPath(a any) string
- func GetPkgPathV2[T any]() string
- func GetPkgPathV3(a any) string
- func GetPkgPathV4[T any](p *T) string
- func GetPkgPaths(objectsTypes []reflect.Type) []string
- func GetQuotedPackageImportPaths(objectsTypes []reflect.Type) []string
- func GetType(a any) reflect.Type
- func GetTypeName(a any) string
- func GetTypeNameV2[T any]() string
- func GetTypeNameV3(object any) string
- func GetTypeNameV4[T any](p *T) string
- func GetTypeV2[T any]() reflect.Type
- func GetTypeV3(object any) reflect.Type
- func GetTypeV4[T any](p *T) reflect.Type
- func GetTypes(objects []any) []reflect.Type
- func NewObject[T any]() (a *T)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateTypeUsageCode ¶
GenerateTypeUsageCode generates the code for using a type from another package. It constructs the code representation for the type as it would be used in another package, including the package name and type name. If the type is from the same package, it returns just the type name.
For example, if the type is "Demo" from package "abc", this function will return "abc.Demo". If the package path is empty, it simply returns the type name.
GenerateTypeUsageCode 用于生成从其他包调用某个包类型的代码。 它构造了类型在其他包中的使用代码,包括包名和类型名。 如果类型来自相同的包,则只返回类型名。
举个例子,如果类型是来自包 "abc" 的 "Demo",这个函数将返回 "abc.Demo"。 如果包路径为空,则只返回类型名。
func GetPkgName ¶
func GetPkgNameV2 ¶
func GetPkgNameV3 ¶
func GetPkgNameV4 ¶
func GetPkgPath ¶
GetPkgPath 在 Go 语言中,通过反射是无法直接获取函数的包名的。 reflect.TypeOf(a).PkgPath() 只适用于结构体对象,而不能用于结构体指针,而不适用于指针/函数/方法类型。 接口假如存的是非指针对象也只能解出对象的类型而非接口的类型,接口假如存的是对象指针还是不能得到,解析结果是依据存的数据类型,能不能解出也是看是否符合前面的规则 函数本身没有一个与之关联的类型,因此无法通过反射获取其包的完整导入路径。 如果你需要获取函数所属的包名,最好的方式是直接在代码中引用函数。
func GetPkgPathV2 ¶
GetPkgPathV2 就是 GetPkgPath 的泛型版啦,因为最开始是没有泛型的,而其后Go支持泛型 认为非泛型版也是很有用的(当对象是从函数传过来的,而外部函数非泛型时,而外部函数非常底层没法逐级加泛型时,或者对象过多时,使用非泛型版都是有优势的) 因此保留非泛型版而把泛型版命名为V2,毕竟只添加两个字符就能解决问题,还能保证含义不变,V2也还行
func GetPkgPathV3 ¶
func GetPkgPathV4 ¶
func GetPkgPaths ¶
GetPkgPaths returns the package paths of the provided reflect.Type objects. GetPkgPaths 返回给定 reflect.Type 对象的包路径。
func GetQuotedPackageImportPaths ¶
GetQuotedPackageImportPaths generates the import paths for the provided types, with the necessary quotes for import statements. GetQuotedPackageImportPaths 生成给定类型的导入路径,再为导入语句加上必要的双引号。
func GetType ¶
GetType returns the reflect.Type of the provided object. GetType 返回提供对象的 reflect.Type。
func GetTypeName ¶
func GetTypeNameV2 ¶
func GetTypeNameV3 ¶
GetTypeNameV3 获取类型名称,由于有的时候会传对象而有的时候会传指针,因此这里做个简单的适配
func GetTypeNameV4 ¶
func GetTypeV2 ¶
GetTypeV2 is a generic version of GetType. It returns the reflect.Type of the result from GetObject[T](). GetTypeV2 是 GetType 的泛型版本,返回 GetObject[T]() 结果的 reflect.Type。
func GetTypeV3 ¶
GetTypeV3 returns the reflect.Type of an object. It checks if the object is a pointer, and if so, it returns the type of the underlying value. GetTypeV3 获取对象的 reflect.Type。如果对象是指针,返回指针所指向的值的类型。
func GetTypeV4 ¶
GetTypeV4 is a generic function that takes a pointer and returns the reflect.Type of the dereferenced value. GetTypeV4 是一个泛型函数,接受一个指针并返回解引用后的值的 reflect.Type。
Types ¶
This section is empty.