需要为 32 位架构编译 uint64 的 Golang 程序

Golang program requiring uint64 compiling for 32 bit architecture

我目前正在开发一个程序,我需要存储大整数值,大到它们不适合 uint32。仅 int64uint64.

我刚刚意识到我将用于此项目的 Raspberry Pi Zero v1.3 具有 Broadcom BCM2835 processor,我认为它是 32 bit 架构处理器。

It contains an ARM1176JZFS (ARM11 using an ARMv6-architecture core) with floating point, running at 1GHz

如何确保我的程序在此 32 位体系结构上正常运行?我必须做些不同的事情吗?或者当我交叉编译它时,编译器是否能够毫无问题地处理它:env GOOS=linux GOARCH=arm GOARM=6 go build?

首先声明:我不是写32位代码的,所以我说的可能不完整。

根据语言规范,依赖于体系结构的类型只有 int、uint 和 uintptr。这意味着,您必须返回并检查声明为这些类型之一的每条数据和函数参数。您还必须检查作为接口{}传递的任何未类型化数字文字(声明的常量和文字值),因为它们也将作为 int 传递。