G.TRA.BLN.07 对实现 Copy 的可迭代类型来说,要通过迭代器拷贝其所有元素时,应该使用 copied方法,而非cloned

【级别】 建议

【描述】

copied 方法在语义层面,是针对实现 Copy 的类型,所以应该使用 copied 来增加代码可读性。

【反例】


#![allow(unused)]
#![warn(clippy::cloned_instead_of_copied)]

fn main() {
let a = [1, 2, 3];
// 不符合
let v_copied: Vec<_> = a.iter().cloned().collect();
}

【正例】


#![allow(unused)]
#![warn(clippy::cloned_instead_of_copied)]
fn main() {
let a = [1, 2, 3];
// 符合
let v_copied: Vec<_> = a.iter().copied().collect();
}

【Lint 检测】

lint nameClippy 可检测Rustc 可检测Lint Grouplevel
cloned_instead_of_copiedyesnopedanticallow