isize和usize会在生锈方面有所不同吗?

时间:2019-04-04 01:39:15

标签: rust

大小和使用大小可以不同吗? 它们都可以用于内存大小,索引,偏移量。

由于 usize 用于数组,为什么我们不只是使用usize

我是Rust的新手,所以这可能是一个基本问题。

更新:在32位系统上,它们都为32位长,而在64位系统上,它们都为64位长。不论符号。

2 个答案:

答案 0 :(得分:4)

在32位系统上,isizei32相同,usizeu32相同。在64位系统上,isizei64相同,usizeu64相同。

  • usize不能为负,通常用于内存地址,位置,索引,长度(或大小!)。
  • isize 可以是负数,通常用于对地址,位置,索引或长度的偏移量。

答案 1 :(得分:2)

isize 是基于架构的(例如32位/ 64位)有符号(负/ 0 /正)整数类型。

请参见here

  

原始类型大小

     

指针大小的有符号整数类型。

     

另请参阅std :: isize模块。

     

此原语的大小是引用任何原始文件需要多少字节   在内存中的位置。例如,在32位目标上,这是4个字节   在64位目标上,这是8个字节。

使用是基于架构的(例如32位/ 64位)无符号(0 /正)整数类型。

请参见here

  

原始类型使用

     

指针大小的无符号整数类型。

     

另请参阅std :: usize模块。

     

此原语的大小是引用任何原始文件需要多少字节   在内存中的位置。例如,在32位目标上,这是4个字节   在64位目标上,这是8个字节。