Primitive Type usize1.0.0[−]
Expand description
指针大小的无符号整数类型。
该原语的大小是引用内存中任何位置所需要的字节数。 例如,在 32 位目标上,这是 4 个字节,而在 64 位目标上,这是 8 个字节。
Implementations
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rotate_left(self, n: u32) -> usize
1.0.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rotate_left(self, n: u32) -> usize
1.0.0 (const: 1.32.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rotate_right(self, n: u32) -> usize
1.0.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rotate_right(self, n: u32) -> usize
1.0.0 (const: 1.32.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_add(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_add(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_add(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_add(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
未经检查的整数加法。
假设不会发生溢出,则计算 self + rhs
。
Safety
当以下情况时,这导致未定义的行为
self + rhs > usize::MAX
or self + rhs < usize::MIN
,
i.e. 当 checked_add
返回 None
时。
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_sub(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_sub(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
未经检查的整数减法。
假设不会发生溢出,则计算 self - rhs
。
Safety
当以下情况时,这导致未定义的行为
self - rhs > usize::MAX
or self - rhs < usize::MIN
,
i.e. 当 checked_sub
返回 None
时。
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_mul(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_mul(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
未经检查的整数乘法。
假设不会发生溢出,则计算 self * rhs
。
Safety
当以下情况时,这导致未定义的行为
self * rhs > usize::MAX
or self * rhs < usize::MIN
,
i.e. 当 checked_mul
返回 None
时。
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_div(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_div(self, rhs: usize) -> Option<usize>
1.0.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>
1.38.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_rem(self, rhs: usize) -> Option<usize>
1.7.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_rem(self, rhs: usize) -> Option<usize>
1.7.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>
1.38.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log(self, base: usize) -> usize
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log(self, base: usize) -> usize
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log2(self) -> usize
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log2(self) -> usize
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log10(self) -> usize
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn log10(self) -> usize
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log(self, base: usize) -> Option<usize>
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log(self, base: usize) -> Option<usize>
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log2(self) -> Option<usize>
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log2(self) -> Option<usize>
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log10(self) -> Option<usize>
[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_log10(self) -> Option<usize>
[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_shl(self, rhs: u32) -> Option<usize>
1.7.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_shl(self, rhs: u32) -> Option<usize>
1.7.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_shl(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_shl(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
未检查的左移。
计算 self << rhs
,假设 rhs
小于 self
中的位数。
Safety
如果 rhs
大于或等于 self
中的位数,则会导致未定义的行为,即
当 checked_shl
返回 None
时。
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_shr(self, rhs: u32) -> Option<usize>
1.7.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_shr(self, rhs: u32) -> Option<usize>
1.7.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_shr(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const unsafe fn unchecked_shr(self, rhs: usize) -> usize
[src]🔬 This is a nightly-only experimental API. (unchecked_math
#85122)
niche optimization path
未检查右移。
计算 self >> rhs
,假设 rhs
小于 self
中的位数。
Safety
如果 rhs
大于或等于 self
中的位数,则会导致未定义的行为,即
当 checked_shr
返回 None
时。
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_pow(self, exp: u32) -> Option<usize>
1.34.0 (const: 1.50.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn checked_pow(self, exp: u32) -> Option<usize>
1.34.0 (const: 1.50.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_add(self, rhs: usize) -> usize
1.0.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_add(self, rhs: usize) -> usize
1.0.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_sub(self, rhs: usize) -> usize
1.0.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_sub(self, rhs: usize) -> usize
1.0.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_mul(self, rhs: usize) -> usize
1.7.0 (const: 1.47.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_mul(self, rhs: usize) -> usize
1.7.0 (const: 1.47.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_pow(self, exp: u32) -> usize
1.34.0 (const: 1.50.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn saturating_pow(self, exp: u32) -> usize
1.34.0 (const: 1.50.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_add(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_add(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_sub(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_sub(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_mul(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_mul(self, rhs: usize) -> usize
1.0.0 (const: 1.32.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_div(self, rhs: usize) -> usize
1.2.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_div(self, rhs: usize) -> usize
1.2.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_div_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_div_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_rem(self, rhs: usize) -> usize
1.2.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_rem(self, rhs: usize) -> usize
1.2.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]包装 (modular) 取反。
计算 -self
,在类型的边界处回绕。
由于无符号类型没有负的等效项,因此该函数的所有应用程序都将自动换行 (-0
除外)。
对于小于相应有符号类型的最大值的值,结果与强制转换相应有符号值的结果相同。
任何较大的值都等于 MAX + 1 - (val - MAX - 1)
,其中 MAX
是对应的有符号类型的最大值。
Examples
基本用法:
请注意,此示例在整数类型之间共享。
这就解释了为什么在这里使用 i8
。
assert_eq!(100i8.wrapping_neg(), -100); assert_eq!((-128i8).wrapping_neg(), -128);Run
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_shl(self, rhs: u32) -> usize
1.2.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_shl(self, rhs: u32) -> usize
1.2.0 (const: 1.32.0)[src]无 Panic - 按位左移;
产生 self << mask(rhs)
,其中 mask
删除 rhs
的所有高位,这些高位将导致移位超过该类型的位宽。
注意,这与左旋不同; 环绕左移的 RHS 限于该类型的范围,而不是从 LHS 移出的位返回到另一端。
所有原始整数类型都实现了 rotate_left
函数,而您可能想要的是 rotate_left
函数。
Examples
基本用法:
assert_eq!(1usize.wrapping_shl(7), 128); assert_eq!(1usize.wrapping_shl(128), 1);Run
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_shr(self, rhs: u32) -> usize
1.2.0 (const: 1.32.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_shr(self, rhs: u32) -> usize
1.2.0 (const: 1.32.0)[src]无 Panic - 按位右移;
产生 self >> mask(rhs)
,其中 mask
删除 rhs
的所有高位,这些高位将导致移位超过该类型的位宽。
注意,这与右旋转不同。换行右移的 RHS 限于类型的范围,而不是从 LHS 移出的位返回到另一端。
所有原始整数类型都实现了 rotate_right
函数,而您可能想要的是 rotate_right
函数。
Examples
基本用法:
assert_eq!(128usize.wrapping_shr(7), 1); assert_eq!(128usize.wrapping_shr(128), 128);Run
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_pow(self, exp: u32) -> usize
1.34.0 (const: 1.50.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn wrapping_pow(self, exp: u32) -> usize
1.34.0 (const: 1.50.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn div_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn div_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rem_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]
#[must_use = "this returns the result of the operation, \ without modifying the original"]pub const fn rem_euclid(self, rhs: usize) -> usize
1.38.0 (const: 1.52.0)[src]🔬 This is a nightly-only experimental API. (wrapping_next_power_of_two
#32463)
needs decision on wrapping behaviour
🔬 This is a nightly-only experimental API. (wrapping_next_power_of_two
#32463)
needs decision on wrapping behaviour
将此整数的内存表示作为本机字节顺序的字节数组返回。
由于使用了目标平台的原生字节序,因此,可移植代码应酌情使用 to_be_bytes
或 to_le_bytes
。
Note: This function returns an array of length 2, 4 or 8 bytes depending on the target pointer size.
Examples
let bytes = 0x1234567890123456usize.to_ne_bytes(); assert_eq!( bytes, if cfg!(target_endian = "big") { [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56] } else { [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12] } );Run
根据其表示形式 (大字节序中的字节数组) 创建一个本地字节序整数值。
Note: This function takes an array of length 2, 4 or 8 bytes depending on the target pointer size.
Examples
let value = usize::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]); assert_eq!(value, 0x1234567890123456);Run
从切片而不是数组开始时,可以使用容易出错的转换 API:
use std::convert::TryInto; fn read_be_usize(input: &mut &[u8]) -> usize { let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>()); *input = rest; usize::from_be_bytes(int_bytes.try_into().unwrap()) }Run
从它的表示形式以 little endian 的字节数组创建一个本地 endian 整数值。
Note: This function takes an array of length 2, 4 or 8 bytes depending on the target pointer size.
Examples
let value = usize::from_le_bytes([0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]); assert_eq!(value, 0x1234567890123456);Run
从切片而不是数组开始时,可以使用容易出错的转换 API:
use std::convert::TryInto; fn read_le_usize(input: &mut &[u8]) -> usize { let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>()); *input = rest; usize::from_le_bytes(int_bytes.try_into().unwrap()) }Run
从其内存表示形式以原生字节序形式创建一个原生字节序整数值。
由于使用了目标平台的原生字节序,因此可移植代码可能希望酌情使用 from_be_bytes
或 from_le_bytes
。
Note: This function takes an array of length 2, 4 or 8 bytes depending on the target pointer size.
Examples
let value = usize::from_ne_bytes(if cfg!(target_endian = "big") { [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56] } else { [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12] }); assert_eq!(value, 0x1234567890123456);Run
从切片而不是数组开始时,可以使用容易出错的转换 API:
use std::convert::TryInto; fn read_ne_usize(input: &mut &[u8]) -> usize { let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>()); *input = rest; usize::from_ne_bytes(int_bytes.try_into().unwrap()) }Run
👎 Deprecating in a future Rust version: replaced by the MIN
associated constant on this type
replaced by the MIN
associated constant on this type
新代码应优先使用
usize::MIN
instead.
返回此整数类型可以表示的最小值。
👎 Deprecating in a future Rust version: replaced by the MAX
associated constant on this type
replaced by the MAX
associated constant on this type
新代码应优先使用
usize::MAX
instead.
返回此整数类型可以表示的最大值。
Trait Implementations
执行 +=
操作。 Read more
执行 +=
操作。 Read more
执行 &=
操作。 Read more
执行 &=
操作。 Read more
type Output = NonZeroUsize
type Output = NonZeroUsize
应用 |
运算符后的结果类型。
执行 |
操作。 Read more
执行 |=
操作。 Read more
执行 |=
操作。 Read more
执行 ^=
操作。 Read more
执行 ^=
操作。 Read more
执行 /=
操作。 Read more
执行 /=
操作。 Read more
Converts a NonZeroUsize
into an usize
type Err = ParseIntError
type Err = ParseIntError
可以从解析中返回的相关错误。
执行 *=
操作。 Read more
执行 *=
操作。 Read more
如果存在,则此方法返回 self
和 other
值之间的顺序。 Read more
执行 %=
操作。 Read more
执行 %=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 <<=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
执行 >>=
操作。 Read more
type Output = T
type Output = T
方法返回的输出类型。
slice_index_methods
)返回此位置输出的共享引用,而不执行任何边界检查。
即使未使用所得的引用,使用越界索引或悬空的 slice
指针调用此方法也是 [undefined 行为]。 Read more
slice_index_methods
)返回此位置输出的变量引用,而不执行任何边界检查。
即使未使用所得的引用,使用越界索引或悬空的 slice
指针调用此方法也是 [undefined 行为]。 Read more
slice_index_methods
)返回此位置输出的共享引用,如果越界则会触发 panic。 Read more
🔬 This is a nightly-only experimental API. (step_trait
#42168)
recently redesigned
返回通过将 self
count
的 successor 而获得的值。 Read more
🔬 This is a nightly-only experimental API. (step_trait
#42168)
recently redesigned
返回通过获取 self count
次的 predecessor 而获得的值。 Read more
🔬 This is a nightly-only experimental API. (step_trait
#42168)
recently redesigned
返回通过将 self
count
的 successor 而获得的值。 Read more
🔬 This is a nightly-only experimental API. (step_trait
#42168)
recently redesigned
返回通过获取 self count
次的 predecessor 而获得的值。 Read more
🔬 This is a nightly-only experimental API. (step_trait
#42168)
recently redesigned
返回从 start
到 end
所需的 successor 步骤的数量。 Read more
执行 -=
操作。 Read more
执行 -=
操作。 Read more