繁体   English   中英

在 Golang 中将类型 uintptr 分配给 uint64

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM