我试图将在uintptr
类型的变量中找到的值分配给Go中的uint64
变量。使用
myVar = valFromSystem
给我并尝试
myVar = *valFromSystem
给我有没有办法拉valFromSystem指向的值分配给
myVar
? 最佳答案
首先,将valFromSystem
转换为unsafe.Pointer
。 unsafe.Pointer
可以转换为任何指针类型。接下来,将unsafe.Pointer
转换为一个指向valFromSystem
指向的数据类型的指针,例如一个uint64
。
ptrFromSystem = (*uint64)(unsafe.Pointer(valFromSystem))
如果只想获取指针的值(不取消引用),则可以使用直接强制转换:
uint64FromSystem = uint64(valFromSystem)
但是请记住,将指针用作整数时应使用
uintptr
类型。关于pointers - 在Golang中为uint64分配类型uintptr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23202864/