【发布时间】:2016-02-17 05:30:10
【问题描述】:
如何在 Go 中将 uint32 转换为 int?
一点背景知识,我正在从一个文件中读取数据,这为我提供了一个字节数组的正确大小,如下所示:
size := binary.BigEndian.Uint32(b[4:])
但是,bufio.Discard func 需要一个 int。我能够使用 fmt 将大小转换为字符串,然后使用 strconv 将其转换为 int。必须有一种更优雅的方式来做到这一点。
【问题讨论】:
-
简单的type conversion,简短的:
i := int(size)或详细的:var intResult int = int(size)。 -
起初我认为简单的演员表也可以。但是,Go 似乎不允许这样做,但错误消息并不清楚。
-
什么错误信息?你会介意张贴吗?简单的转换确实有效,请参阅 Go 操场上的这个示例:play.golang.org/p/iPJcmvW4MS
-
@icza:这不是解决问题的好方法。不需要临时变量。
-
@peterSO 是的,不需要临时变量。我并不是要暗示这一点,只是想表明一个简单的转换就可以做到。无论有没有临时变量,它都可以工作。
标签: go