大小和使用大小可以不同吗? 它们都可以用于内存大小,索引,偏移量。
由于 usize 用于数组,为什么我们不只是使用usize
我是Rust的新手,所以这可能是一个基本问题。
更新:在32位系统上,它们都为32位长,而在64位系统上,它们都为64位长。不论符号。
答案 0 :(得分:4)
在32位系统上,isize
与i32
相同,usize
与u32
相同。在64位系统上,isize
与i64
相同,usize
与u64
相同。
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个字节。