湖上湖
你必须使用 unsafe 包。func mapInt32(fd uintptr, prot gommap.ProtFlags, flags gommap.MapFlags) ([]int32, error) { mmap, err := gommap.Map(fd, prot, flags) if err != nil { return nil, err } header := (*reflect.SliceHeader)(unsafe.Pointer(&mmap)) // account for the size different between byte and int32 header.Len /= 4 header.Cap = header.Len return *(*[]int32)(unsafe.Pointer(header)), nil}完成后,您可能希望设法取消内存映射。你可以通过以类似的方式不安全地将你的[]int32背投向 a来做到这gommap.MMap一点。