[英]Assigning a type uintptr to uint64 in Golang
我试图将在uintptr
类型的变量中找到的值分配给 Go 中的uint64
变量。 使用
myVar = valFromSystem
给我
不能在赋值中使用
valFromSystem
(类型uintptr
)作为类型uint64
并尝试
myVar = *valFromSystem
给我
valFromSystem 的无效间接(类型 uintptr)
有没有办法拉取 valFromSystem 指向的值以分配给myVar
?
首先,将valFromSystem
转换为unsafe.Pointer
。 unsafe.Pointer
可以转换为任何指针类型。 接着,施放unsafe.Pointer
成指针到任何类型的数据valFromSystem
来分,例如一个uint64
。
ptrFromSystem = (*uint64)(unsafe.Pointer(valFromSystem))
如果只想获取指针的值(不取消引用),可以使用直接转换:
uint64FromSystem = uint64(valFromSystem)
但请记住,当将指针用作整数时,您应该使用uintptr
类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.