github.com/goplus/reflectx@v1.2.2/README.md (about) 1 # reflectx 2 Golang reflect package hack tools 3 4 [![Go1.14](https://github.com/goplus/reflectx/workflows/Go1.14/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go114.yml) 5 [![Go1.15](https://github.com/goplus/reflectx/workflows/Go1.15/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go115.yml) 6 [![Go1.16](https://github.com/goplus/reflectx/workflows/Go1.16/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go116.yml) 7 [![Go1.17](https://github.com/goplus/reflectx/workflows/Go1.17/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go117.yml) 8 [![Go1.18](https://github.com/goplus/reflectx/workflows/Go1.18/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go118.yml) 9 [![Go1.19](https://github.com/goplus/reflectx/workflows/Go1.19/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go119.yml) 10 [![Go1.20](https://github.com/goplus/reflectx/workflows/Go1.20/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go120.yml) 11 [![Go1.21](https://github.com/goplus/reflectx/workflows/Go1.21/badge.svg)](https://github.com/goplus/reflectx/actions/workflows/go121.yml) 12 13 ### ABI 14 15 support ABI0 and ABIInternal 16 17 - ABI0 stack-based ABI 18 - ABIInternal [register-based Go calling convention proposal](https://golang.org/design/40724-register-calling) 19 20 - Go1.17: amd64 21 - Go1.18: amd64 arm64 ppc64/ppc64le 22 - Go1.19: amd64 arm64 ppc64/ppc64le riscv64 23 - Go1.20: amd64 arm64 ppc64/ppc64le riscv64 24 - Go1.21: amd64 arm64 ppc64/ppc64le riscv64 25 26 ### Field 27 * reflectx.CanSet 28 * reflectx.Field 29 * reflectx.FieldByIndex 30 * reflectx.FieldByName 31 * reflectx.FieldByNameFunc 32 33 ### Named 34 * reflectx.StructOf(fs) 35 * reflectx.NamedTypeOf 36 37 * SetUnderlying 38 * SetTypeName 39 40 ### Method 41 * reflectx.Method 42 * reflectx.MakeMethod 43 44 * reflectx.NewMethodSet 45 * reflectx.SetMethodSet 46 47 * reflectx.StructToMethodSet 48 49 ### Interface 50 * reflectx.InterfaceOf 51 * reflectx.NamedInterfaceOf 52 * reflectx.NewInterfaceType 53 * reflectx.SetInterfaceType 54 55 ### Context 56 * reflectx.NewContext() 57 58 ### Method allocs 59 * allocs 60 ``` 61 import _ "github.com/goplus/reflectx/icall/icall[N]" 62 ``` 63 * install icall_gen 64 ``` 65 go get github.com/goplus/reflectx/cmd/icall_gen 66 ``` 67 ``` 68 icall_gen -o icall1024.go -pkg main -size 1024 69 ```