我有一个未知长度的切片,我想尝试获取该切片的最后 N 个元素的切片。我能想到的唯一方法如下(例如,对于 4 个元素):
if let [.., a, b, c, d] = my_slice {
//...
}
虽然这感觉很麻烦。我本以为 range expressions 之一会提供这个功能,但他们似乎都没有这样做......还有另一种方法吗?理想情况下,我将能够使用切片而不是上面示例中的单个值 a、b、c、d。
最佳答案
我喜欢你的解决方案,但你可以使用 get
.一个简单的版本如下所示:
fn last4<T>(slc: &[T]) -> Option<&[T]> {
slc.get(slc.len()-4..slc.len())
}
在实践中,您需要检查 slc.len()
是否至少为 4。
关于rust - 是否存在可用于引用切片的最后 N 个元素的范围表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64116761/