我试图将在uintptr类型的变量中找到的值分配给Go中的uint64变量。使用

myVar = valFromSystem
给我

并尝试
myVar = *valFromSystem
给我

有没有办法拉valFromSystem指向的值分配给myVar

最佳答案

首先,将valFromSystem转换为unsafe.Pointerunsafe.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/

10-10 10:34