什么是相当于`size_t`的Rust?

Per*_*ids 11 rust

在更实际的术语中:我应该为向量中的索引,数组的长度等使用什么整数数据类型?

关于这个主题的讨论有很多关于1.0之前的Rust在互联网上流传的问题,我找不到最终决定的权威答案.

fil*_*mor 12

那将是usizeisize(指针大小类型,无符号和签名).该参考文献表明,数组的最大大小是isize可以计算位置差异的最大值.

但是,所有指数的std::Vec使用功能usize.

  • @MatthieuM.为什么它是2GB而不是2G元素? (3认同)
  • 请注意,在 32 位系统上,`isize` 限制为 32 位,因此即使有 4GB 可用,这实际上也将数组的大小限制为 2GB。在 64 位上,我怀疑这会是一个问题。 (2认同)
  • @MatthieuM.:在现有的 64 位平台上,地址只有 48 位,所以 63 位就足够了。 (2认同)