本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。