我有一个数组和向量,矢量填充在一个循环中.在循环的每次迭代中,我想检查向量的最后4个元素是否等于数组的4个元素.数组的大小为4.
有没有比一个一个地比较它们的元素更好的方法呢?我喜欢类似的东西my_array == my_vector[4, -4]
mal*_*rbo 11
有没有比一个一个地比较它们的元素更好的方法呢?
是的,你可以比较片与向量的片阵列的:
fn main() {
let a = [3, 4, 5, 6];
let v = vec![0, 1, 2, 3, 4, 5, 6];
assert_eq!(&a[..], &v[v.len() - 4..]);
}
Run Code Online (Sandbox Code Playgroud)
可以使用任何范围形式创建切片.以下是创建切片的一些示例:
fn main() {
let v = vec![0, 1, 2, 3, 4, 5, 6];
// indexes 0, 1, 2 (3 not included)
assert_eq!(&[0, 1, 2], &v[..3]);
// indexes 2, 3 (4 not included)
assert_eq!(&[2, 3], &v[2..4]);
// indexes 3, 4, ..until the last
assert_eq!(&[3, 4, 5, 6], &v[3..]);
// all indexes
assert_eq!(&[0, 1, 2, 3, 4, 5, 6], &v[..]);
}
Run Code Online (Sandbox Code Playgroud)