我需要存储和检索 interface{} 值的字节表示。为了澄清,我不是试图存储打包到一个切片中的基础值,无论它们的大小如何,而是寻找一种方法来存储指向所述值的指针。
我不能只是去的原因type MyType interface{}; var arr []MyType
是因为我在这个数组中打包了非均匀数量的其他字节。
为了实现这一点,我正在查看反射和不安全包,并且我看到UnsafeAddr
了返回指针之类的方法。我可以使用存储该指针,然后稍后将其解码回我的 interface{} 值吗?
我看到的另一个函数是InterfaceData
返回一个 2 字节数组表示,但是有什么方法可以再次将其转换回接口值?
我的高级目标是这样的:
// store the pointer to dataIn in the slice b
func putPtr(b []byte, dataIn interface{}) { ... }
// return the pointed to interface value from within b
func getInter(b []byte) interface{} { ... }