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 name | Clippy 可检测 | Rustc 可检测 | Lint Group | level |
---|---|---|---|---|
cloned_instead_of_copied | yes | no | pedantic | allow |