Pointers 将类型uintptr分配给Golang中的uint64
我试图将在类型为Pointers 将类型uintptr分配给Golang中的uint64,pointers,go,variable-assignment,Pointers,Go,Variable Assignment,我试图将在类型为uintptr的变量中找到的值赋给Go中的uint64变量。使用 myVar = valFromSystem 给我 无法将valFromSystem(typeuintpttr)用作分配中的类型uint64 努力 myVar = *valFromSystem 给我 valFromSystem的间接属性无效(类型UINTPTTR) 是否有方法将valFromSystem指向的值拉到分配给myVar?首先,将valFromSystem转换为不安全的指针。不安全。指针可以转换为任何指
uintptr
的变量中找到的值赋给Go中的uint64
变量。使用
myVar = valFromSystem
给我
无法将valFromSystem
(typeuintpttr
)用作分配中的类型uint64
努力
myVar = *valFromSystem
给我
valFromSystem的间接属性无效(类型UINTPTTR)
是否有方法将valFromSystem指向的值拉到分配给
myVar
?首先,将valFromSystem
转换为不安全的指针。不安全。指针可以转换为任何指针类型。接下来,将unsafe.Pointer
转换为指向任何类型的数据valFromSystem
的指针,例如uint64
ptrFromSystem = (*uint64)(unsafe.Pointer(valFromSystem))
如果只想获取指针的值(而不取消引用),可以使用直接强制转换:
uint64FromSystem = uint64(valFromSystem)
但是请记住,当使用指针作为整数时,应该使用类型uintpttr