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
(type
uintpttr
)用作分配中的类型
uint64

努力

myVar = *valFromSystem
给我

valFromSystem的间接属性无效(类型UINTPTTR)


是否有方法将valFromSystem指向的值拉到分配给
myVar

首先,将
valFromSystem
转换为
不安全的指针。
不安全。指针可以转换为任何指针类型。接下来,将
unsafe.Pointer
转换为指向任何类型的数据
valFromSystem
的指针,例如
uint64

ptrFromSystem = (*uint64)(unsafe.Pointer(valFromSystem))
如果只想获取指针的值(而不取消引用),可以使用直接强制转换:

uint64FromSystem = uint64(valFromSystem)
但是请记住,当使用指针作为整数时,应该使用类型
uintpttr