Types 根据系统切换数据类型?

Types 根据系统切换数据类型?,types,architecture,rust,32bit-64bit,Types,Architecture,Rust,32bit 64bit,我有一个项目,我需要从磁盘读取一些字节。如果系统是64位系统,这将读取一个双字以获得正确的字节数。如果是32位系统,它将读取一个单词 我希望有一种类型可以代表这两种选项中的任何一种。称之为SystemWord 我不确定最好的方式来处理这个问题,让我有这样的东西 let test: SystemWord = 0x01; 它将立即知道是选择u64还是u32 有没有人能提供一些关于最好的方法的指导?我对生锈还是相当陌生。你是说使用,就像 这就是你看起来真正想要的解决方案。您所问问题的解决方案如下:

我有一个项目,我需要从磁盘读取一些字节。如果系统是64位系统,这将读取一个双字以获得正确的字节数。如果是32位系统,它将读取一个单词

我希望有一种类型可以代表这两种选项中的任何一种。称之为
SystemWord

我不确定最好的方式来处理这个问题,让我有这样的东西

let test: SystemWord = 0x01;
它将立即知道是选择u64还是u32


有没有人能提供一些关于最好的方法的指导?我对生锈还是相当陌生。

你是说
使用
,就像

这就是你看起来真正想要的解决方案。您所问问题的解决方案如下:

#[cfg(target_pointer_width=“32”)]
类型SystemWord=u32;
#[cfg(target_pointer_width=“64”)]
输入SystemWord=u64;

但是当你可以使用
usize
时,不要这样做。事实上,除非你必须这样做,否则不要这样做,因为这通常会导致你的代码中有两个或两个以上的代码路径:一个是经过良好测试的,另一个是根本没有经过测试的。

wow nice!usize,这很有趣。非常感谢。如果我把它设置为usize,我可以让锈处理它。