我想要一个以 Range 作为参数的函数。
fn takes_range(range: Range<i32>) {
// DO SOMETING WITH RANGE
}
Run Code Online (Sandbox Code Playgroud)
我可以像这样使用这个功能,
takes_range(0..5);
Run Code Online (Sandbox Code Playgroud)
但不是
takes_range(0..=5);
Run Code Online (Sandbox Code Playgroud)
我意识到有两种类型,名为 Range 和 RangeInclusive。所以如果我想取包含范围,应该创建两个函数。
fn takes_range(Range<i32>) {}
fn takes_range_inclusive(RangeInclusive<i32>) {}
Run Code Online (Sandbox Code Playgroud)
然而这不是我想要的。我想同时使用 Range 和 RangeInclusive,所以我可以使用
takes_range(0..5);
takes_range(0..=5);
Run Code Online (Sandbox Code Playgroud)
是否可以使我的函数同时采用这两种类型?