代码之家  ›  专栏  ›  技术社区  ›  xpt

Go,无法将类型*int32转换为类型*int64

  •  0
  • xpt  · 技术社区  · 2 年前

    我已经尝试了所有我能想到的转换类型的方法 *int32 键入 *int64 在Go中,但无效

    https://go.dev/play/p/W2X0HEnn79q

    请有人帮忙。

    2 回复  |  直到 2 年前
        1
  •  2
  •   Burak Serdar    2 年前

    无法转换 *int32 *int64 一个是指向4字节位置的指针,另一个是指指向8字节位置的指示器。

    您可以转换的内容 *int32 int64 ,并获取其地址:

    x:=int32(1) // x is int32
    xPtr:=&x    // xPtr is *int32
    y:=int64(*xPtr)  // y is int64
    yPtr:=&y  // yPtr is *int64
    
        2
  •  0
  •   Shabnam Danish    2 年前

    你可以 convert *int32 *int64 使用 unsafe.Pointer :

    i2 = (*int64)(unsafe.Pointer(&i1))
    

    不要使用此转换。这是对的无效使用 unsafe 包裹

    https://go.dev/play/p/9fJM2-Gqc2b