dongmei425373 2019-02-12 21:18
浏览 96
已采纳

来自go来源的代码是什么意思? 像(*(* float32)(v.ptr))

In reflection package I see the code like

    return float64(*(*float32)(v.ptr))

What is *(*float32)(v.ptr)? I don't have any ideas

  • 写回答

1条回答 默认 最新

  • dongxun5349 2019-02-12 21:29
    关注

    Let's unwrap the expression. We'll take it from innermost to outermost, since that's the order it's evaluated:

    (*float32)(v.ptr)
    

    Convert v.ptr to *float32, a pointer to a float32.

    *(*float32)(v.ptr)
    

    Dereference that pointer, giving us a float32 value.

    float64(*(*float32)(v.ptr))
    

    Convert the float32 value to a float64 value.

    So, whatever v.ptr is, it's converted to a float32 pointer, dereferenced, and then converted to float64, and returned.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看