本文简要介绍rust语言中 Trait std::ops::Rem
的用法。
用法
pub trait Rem<Rhs = Self> {
type Output;
fn rem(self, rhs: Rhs) -> Self::Output;
}
余数运算符 %
。
请注意,Rhs
默认为 Self
,但这不是强制性的。
例子
此示例在 SplitSlice
对象上实现 Rem
。在实现Rem
之后,可以使用%
运算符来找出在将切片分割成给定长度的相等切片后剩余的元素是什么。
use std::ops::Rem;
#[derive(PartialEq, Debug)]
struct SplitSlice<'a, T: 'a> {
slice: &'a [T],
}
impl<'a, T> Rem<usize> for SplitSlice<'a, T> {
type Output = Self;
fn rem(self, modulus: usize) -> Self::Output {
let len = self.slice.len();
let rem = len % modulus;
let start = len - rem;
Self {slice: &self.slice[start..]}
}
}
// If we were to divide &[0, 1, 2, 3, 4, 5, 6, 7] into slices of size 3,
// the remainder would be &[6, 7].
assert_eq!(SplitSlice { slice: &[0, 1, 2, 3, 4, 5, 6, 7] } % 3,
SplitSlice { slice: &[6, 7] });
相关用法
- Rust RemAssign.rem_assign用法及代码示例
- Rust Rem.rem用法及代码示例
- Rust RemAssign用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust RefCell.try_borrow_unguarded用法及代码示例
- Rust Ref.map用法及代码示例
- Rust RefMut.leak用法及代码示例
- Rust Ref.filter_map用法及代码示例
- Rust RefCell.replace_with用法及代码示例
- Rust Receiver.recv用法及代码示例
- Rust Result.as_deref_mut用法及代码示例
- Rust Result.unwrap_or_default用法及代码示例
- Rust Result.as_mut用法及代码示例
- Rust Result.map_or用法及代码示例
- Rust Result.err用法及代码示例
- Rust Receiver.recv_timeout用法及代码示例
- Rust Receiver.try_recv用法及代码示例
- Rust Result用法及代码示例
- Rust Read用法及代码示例
- Rust Result.is_err用法及代码示例
- Rust Result.into_ok用法及代码示例
- Rust Result.cloned用法及代码示例
- Rust Result.unwrap_err用法及代码示例
- Rust Result.expect用法及代码示例
- Rust Receiver用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait std::ops::Rem。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。