Joh*_*ica 20
pub fn sequence(n: u32) -> Vec<u32> {
(0..n).collect()
}
Run Code Online (Sandbox Code Playgroud)
您可以按照以下方式将其作为单行代码执行:
let n = 4;
let v: Vec<i32> = (0..n).collect(); // the last element will be n-1
assert_eq!(v, vec![0, 1, 2, 3]);
let v: Vec<i32> = (0..=n).collect(); // the last element will be n
assert_eq!(v, vec![0, 1, 2, 3, 4]);
Run Code Online (Sandbox Code Playgroud)
或者,另一种选择:
let v: Vec<i32> = Vec::from_iter(0..n); // the last element will be n-1
assert_eq!(v, vec![0, 1, 2, 3]);
let v: Vec<i32> = Vec::from_iter(0..=n); // the last element will be n
assert_eq!(v, vec![0, 1, 2, 3, 4]);
Run Code Online (Sandbox Code Playgroud)
我们i32可以使用其他数字类型u8,例如u16、i8、 等。这是因为 和collect()都是Vec::from_iter泛型方法。
所有这些解决方案分别使用Range或RangeInclusive结构,它们都实现Iterator。这使得它们可以轻松地转换为Vec,这通常是通过该collect()方法完成的。
| 归档时间: |
|
| 查看次数: |
5655 次 |
| 最近记录: |