Struct core::num::NonZeroI128 1.34.0[−][src]
#[repr(transparent)]pub struct NonZeroI128(_);Expand description
已知不等于零的整数。
这样可以进行一些内存布局优化。
For example, Option<NonZeroI128> is the same size as i128:
use std::mem::size_of;
assert_eq!(size_of::<Option<core::num::NonZeroI128>>(), size_of::<i128>());RunImplementations
计算 self 的绝对值,带有溢出信息,请参见
Example
#![feature(nonzero_ops)]
let pos = NonZeroI128::new(1)?;
let neg = NonZeroI128::new(-1)?;
let min = NonZeroI128::new(i128::MIN)?;
assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());Run饱和绝对值,请参见
i128::saturating_abs.
Example
#![feature(nonzero_ops)]
let pos = NonZeroI128::new(1)?;
let neg = NonZeroI128::new(-1)?;
let min = NonZeroI128::new(i128::MIN)?;
let min_plus = NonZeroI128::new(i128::MIN + 1)?;
let max = NonZeroI128::new(i128::MAX)?;
assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());Run包装绝对值,请参见
i128::wrapping_abs.
Example
#![feature(nonzero_ops)]
let pos = NonZeroI128::new(1)?;
let neg = NonZeroI128::new(-1)?;
let min = NonZeroI128::new(i128::MIN)?;
let max = NonZeroI128::new(i128::MAX)?;
assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());Run在没有任何包装或 panicking 的情况下计算 self 的绝对值。
Example
#![feature(nonzero_ops)]
let u_pos = NonZeroU128::new(1)?;
let i_pos = NonZeroI128::new(1)?;
let i_neg = NonZeroI128::new(-1)?;
let i_min = NonZeroI128::new(i128::MIN)?;
let u_max = NonZeroU128::new(u128::MAX / 2 + 1)?;
assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());RunTrait Implementations
type Output = NonZeroI128
type Output = NonZeroI128
应用 | 运算符后的结果类型。
执行 | 操作。 Read more
执行 |= 操作。 Read more
执行 |= 操作。 Read more
Converts a NonZeroI128 into an i128
Converts NonZeroI16 to NonZeroI128 losslessly.
Converts NonZeroI32 to NonZeroI128 losslessly.
Converts NonZeroI64 to NonZeroI128 losslessly.
Converts NonZeroU16 to NonZeroI128 losslessly.
Converts NonZeroU32 to NonZeroI128 losslessly.
Converts NonZeroU64 to NonZeroI128 losslessly.
此方法测试 self 和 other 值是否相等,并由 == 使用。 Read more
此方法测试 !=。
如果存在,则此方法返回 self 和 other 值之间的顺序。 Read more
Attempts to convert NonZeroI128 to NonZeroU8.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroU16.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroIsize.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroU32.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroU64.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroU128.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroUsize.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroI8.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroI16.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroI32.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI128 to NonZeroI64.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroIsize to NonZeroI128.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128 to NonZeroI128.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroUsize to NonZeroI128.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。