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